生成质数的好方法:sieve of eratosthenes
2011-08-20 10:11
579 查看
生成n以内的质数:
易知一个整数最大质因数不会超过其算术平方根,所以只需要从1-n中
剔除1-n^0.5中质数的所有整数倍即可(质数本身除外).
n为一千万时大概只需要0.3秒多.
易知一个整数最大质因数不会超过其算术平方根,所以只需要从1-n中
剔除1-n^0.5中质数的所有整数倍即可(质数本身除外).
n为一千万时大概只需要0.3秒多.
bool prim ;//true为质数 void makeprim() { memset(prim,true,sizeof(prim)); prim[0]=prim[1]=false; int k=sqrt(n); int i,j; for(i=2;i<=k;i++) { if(prim[i]==false)continue;//找到下一个质数进行剔除 for(j=i;j*i<n;j++) prim[j*i]=false; } }
相关文章推荐
- sieve of Eratosthenes——一种寻找素数的方法
- Eratosthenes 素数表生成方法
- 找质数算法(Sieve of Eratosthenes筛法)
- 使用Eratosthenes 方法找出指定范围内的所有质数
- 找质数算法(Sieve of Eratosthenes筛法)
- C和指针之Eratosthenes-埃拉托斯特尼筛方法找质数
- 找质数算法(Sieve of Eratosthenes筛法)
- 找质数算法(Sieve of Eratosthenes筛法)
- Sieve of Eratosthenes求质数
- 算法:Eratosthenes 筛选求质数
- Sieve of Eratosthenes(埃拉托斯特尼素数筛选法)--java实现
- C和指针之用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数
- 用Eratosthenes筛法查找质数
- Sieve of Eratosthenes[ZT]
- Eratosthenes筛选求质数
- Sieve of Eratosthenes[ZT]
- Eratosthenes筛法生成素数表
- Sieve of Eratosthenes[ZT]
- sieve of Eratosthenes 找质素
- Algorithm Gossip: Eratosthenes筛选求质数