欧拉筛法(线性筛素数)
欧拉筛法,一种可以在线性的时间复杂度内筛出素数的算法。
算法思路
对于每一个数(无论质数合数)x,筛掉所有小于x最小质因子的质数乘以x的数。比如对于77,它分解质因数是7*11,那么筛掉所有小于7的质数*77,筛掉2*77、3*77、5*77。
代码
1 | //vis[] 记录一个数是否被访问过的数组 |
参考&证明
欧拉筛法(线性筛素数)
欧拉筛法,一种可以在线性的时间复杂度内筛出素数的算法。
对于每一个数(无论质数合数)x,筛掉所有小于x最小质因子的质数乘以x的数。比如对于77,它分解质因数是7*11,那么筛掉所有小于7的质数*77,筛掉2*77、3*77、5*77。
1 | //vis[] 记录一个数是否被访问过的数组 |
欧拉筛法(线性筛素数)
Update your browser to view this website correctly.&npsb;Update my browser now