C Exercises: Attractive numbers up to 100
A number is called an attractive number if the number of its prime factors (whether distinct or not) is also a prime number.
Example:
The number 30, whose prime decomposition is 2 × 3 × 5, is an attractive number because the number of its prime factors (3) is also a prime number.
The number 100, whose prime decomposition is 2 × 2 x 5 × 5, is not an attractive number because the number of its prime factors (4) is not a prime number.
Write a C program to generate attractive numbers up to 100.
C Code:
#include <stdio.h>
#define MAX 100
int PrimeOrNot(int n1)
{
int i=2;
while(i<=n1/2)
{
if(n1%i==0)
return 0;
else
i++;
}
return 1;
}
int no_of_prime_factors(int n) {
int ctr = 0, nn = 2;
if (n == 1) return 0;
if (PrimeOrNot(n)) return 1;
while (1) {
if (!(n % nn)) {
ctr++;
n /= nn;
if (n == 1) return ctr;
if (PrimeOrNot(n)) nn = n;
}
else if (nn >= 3) nn += 2;
else nn = 3;
}
}
int main() {
int i, n, ctr = 0;
printf("The attractive numbers up to and including %d are:\n\n", MAX);
for (i = 1; i <= MAX; ++i) {
n = no_of_prime_factors(i);
if (PrimeOrNot(n)) {
printf("%4d", i);
if (!(++ctr % 10)) printf("\n");
}
}
printf("\n");
return 0;
}
Sample Output:
The attractive numbers up to and including 100 are: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 55 57 58 59 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 82 83 85 86 87 89 91 92 93 94 95 97 98 99
Flowchart:
C Programming Code Editor:
Contribute your code and comments through Disqus.
Previous C Programming Exercise: Prime number in strictly descending decimal digit order.
Next C Programming Exercise: Colorful numbers.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics