home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
bdsc
/
bdsc-1
/
sieve.c
< prev
next >
Wrap
Text File
|
1994-07-13
|
1KB
|
45 lines
/*
Sieve of Eratosthenes benchmark from BYTE, Sep. '81, pg. 186.
Compile by:
A>cc1 sieve.c -e1000
All variables have been made external to speed them up; other than
that one change, the program is identical to the one used in the BYTE
benchmark....while they got an execution time of 49.5 seconds and a
size of 3932 bytes using v1.32 of the compiler,
********
v1.45 clocks in at * 15.2 * seconds with a size of 3718 bytes!
********
*/
#define TRUE 1
#define FALSE 0
#define SIZE 8190
#define SIZEPL 8191
char flags[SIZEPL];
int i,prime,k,count,iter;
main()
{
printf("Hit return to do 10 iterations: ");
getchar();
for (iter = 1; iter <= 10; iter++) {
count = 0;
for (i = 0; i <= SIZE; i++)
flags[i] = TRUE;
for (i = 0; i <= SIZE; i++) {
if (flags[i]) {
prime = i + i + 3;
k = i + prime;
while (k <= SIZE) {
flags[k] = FALSE;
k += prime;
}
count++;
}
}
}
printf("\7\n%d primes.\n",count);
}