|
|
nsieve-bitsroutine nsieve( bits : bitarray, m=0 ) { bits[] = 1; count = 0; for( i = 2 : m ){ if( bits[i] ){ count ++; for( k = i+i : i : m ) bits[k] = 0; } } return count; } routine main( n = 2 ) { m = 10000 * (1< bits : bitarray = 1L << (m+1); stdio.printf("Primes up to %8d %8d\n", m, nsieve(bits, m) ); m = 10000 * (1<<(n-1)); stdio.printf("Primes up to %8d %8d\n", m, nsieve(bits, m) ); m = 10000 * (1<<(n-2)); stdio.printf("Primes up to %8d %8d\n", m, nsieve(bits, m) ); }
view count 487 times
created at 2009-02-20, 16:30 GMT |
fu: Many thanks (Jul.04,04:29) klabim: fixed Hi, great, now my test works now :- ). (Jun.30,17:51) Nightwalker: Few suggestions (Jul.03,14:37) |