/* sieve.c - It prompts the user to enter an integer N. It prints out * It prints out all the primes up to N included. * It uses a sieve method. As primes are found they are * stored in an array PRIMES and used as possible factors * for the next potential prime. */ #include <stdio.h> #define NPRIMES 1000 #define FALSE 0 #define TRUE 1 int main(void) { int n; int i,j; int flag; int primes[NPRIMES]; /*It will contain the primes smaller than n *that we have already encountered*/ int level; /*1+Number of primes currently in PRIMES*/ /*Introduction*/ printf("Enter value of N > "); scanf("%d",&n); level = 0; /*Main body*/ for(i=2;i<=n;i++) { for(j = 0, flag = TRUE; j<level && flag; j++) flag = (i%primes[j]); if (flag) { /*I is a prime */ printf("%12d\n", i); if (level < NPRIMES) primes[level++] = i; } } }
0 comments:
Post a Comment