dos_compilers/Microsoft C v5/SRC/SIEVE.C

43 lines
788 B
C++
Raw Normal View History

2024-07-02 15:09:28 +02:00
/* Eratosthenes Sieve Prime Number Program in C, Byte January 1983.
* The code has been corrected to produce primes correctly.
*/
#include <stdio.h>
#define TRUE 1
#define FALSE 0
#define NITER 150
#define SIZE 8190
char flags[SIZE+1]={0};
main ()
{
register int i,k;
int iter, count;
printf ("%d iterations: ", NITER);
for( iter = 1; iter <= NITER; iter++ ) /* Do sieve 150 times */
{
count = 0;
for( i = 0; i <= SIZE; i++) /* set all flags true */
flags[i] = TRUE;
for( i = 2; i <= SIZE; i++ )
{
if ( flags[i] ) /* found a prime */
{
for ( k = i + i; k <= SIZE; k += i )
flags[k] = FALSE; /* Cancel its multiples */
count++;
}
}
}
printf ("%d primes\n", count);
exit(0);
}