Change picture:

Choose file:

nsieve


routine  nsieve(  bits  :  array<int>,  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  =  [  0  :  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 528 times
created at 2009-02-20, 16:29 GMT

12 3
456789 10
111213141516 17
181920212223 24
2526272829 30 31

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)

This site is powered by Dao
Copyright (C) 2009,2010, daovm.net.
Webmaster: admin@daovm.net