tk5-c90-projects/src/SIEVE01.c

50 lines
851 B
C
Raw Normal View History

2025-10-19 12:48:47 +00:00
#include<stdio.h>
#define LIMIT 10000
#define PRIMES 1000
2025-10-19 13:05:24 +00:00
// Sieve of Eratosthenes
2025-10-19 13:36:55 +00:00
// Author: Greg Gauthier
2025-10-19 13:39:17 +00:00
// Date: 2016-01-20
2025-10-19 12:48:47 +00:00
int main()
{
int i,j,numbers[LIMIT];
int primes[PRIMES];
for (i=0;i<LIMIT;i++)
{
numbers[i]=i+2;
}
for (i=0;i<LIMIT;i++)
{
if (numbers[i]!=-1)
{
for (j=2*numbers[i]-2;j<LIMIT;j+=numbers[i])
numbers[j]=-1;
}
}
j = 0;
for (i=0;i<LIMIT&&j<PRIMES;i++)
if (numbers[i]!=-1)
primes[j++] = numbers[i];
printf("\n");
printf("PRIME NUMBERS BETWEEN 1 AND %d\n",LIMIT);
printf("TOTAL PRIMES FOUND: %d\n\n",PRIMES);
printf("LIST OF PRIMES:\n\n");
for (i=0;i<PRIMES;i++)
if (i % 20 == 0)
{
printf("\n %4d ",primes[i]);
}
else
{
printf("%4d ",primes[i]);
}
return 0;
}