素数筛

时间:2014-05-30 23:26:36   收藏:0   阅读:204

这是我目前知道的打素数表最快的方法了…………  差不多是O(n)的,100000以内花了0.005秒。

bubuko.com,布布扣
 1 int prime[100005], np, vis[100005];
 2 
 3 void get_prime(int n){
 4     mset(prime); mset(vis);
 5     np = 0;
 6     for(int i = 2; i < n; i++){
 7         if(vis[i] != 1)
 8             prime[np++] = i;
 9         for(int j = 0, t; j < np && (t = prime[j]*i) < n; j++){
10             vis[t] = 1;
11             if(i % prime[j] == 0) break;
12         }
13     }
14 }
View Code

 

素数筛,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!