xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/gcc.misc-tests/sieve.c (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1*c87b03e5Sespie 
2*c87b03e5Sespie #define TRUE 1
3*c87b03e5Sespie #define FALSE 0
4*c87b03e5Sespie #define SIZE 8190
5*c87b03e5Sespie 
6*c87b03e5Sespie char flags[SIZE+1];
7*c87b03e5Sespie 
main()8*c87b03e5Sespie main()
9*c87b03e5Sespie {
10*c87b03e5Sespie 	register int i, prime, k, count, iter;
11*c87b03e5Sespie 	for (iter=1;iter<=100;iter++) 		{
12*c87b03e5Sespie 		count=0;
13*c87b03e5Sespie 		for (i=0;i<=SIZE;i++)
14*c87b03e5Sespie 			flags[i]=TRUE;
15*c87b03e5Sespie 		for (i=0;i<=SIZE;i++) {
16*c87b03e5Sespie 			if (flags[i]) {
17*c87b03e5Sespie 				prime=i+i+3;
18*c87b03e5Sespie 				for (k=i+prime;k<=SIZE;k+=prime)
19*c87b03e5Sespie 					flags[k]=FALSE;
20*c87b03e5Sespie 				count++;
21*c87b03e5Sespie 			}
22*c87b03e5Sespie 		}
23*c87b03e5Sespie 	}
24*c87b03e5Sespie 	return 0;
25*c87b03e5Sespie }
26*c87b03e5Sespie 
27