码迷,mamicode.com
首页 > 其他好文 > 详细

线性筛法(欧拉筛法)求素数

时间:2016-09-25 17:32:20      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

时间复杂度O(n)当n比较大时欧拉筛法所用的时间比O(nloglogn)的算法的时间少的会越来越明显

为什么呢?

因为在欧拉筛法中,每一个合数只被访问并将其所对的f[]的值修改了一次。

for(i = 2; i <= n; i++)
{
    if(f[i] == 0)
    {
        p[++cnt] = i;
    }
    for(j = 1; j <= cnt; j++)
    {
        if(i * p[j] > n)break;
        f[i * p[j]] = 1;
        if(i % p[j] == 0)break;
    }
}

 

线性筛法(欧拉筛法)求素数

标签:

原文地址:http://www.cnblogs.com/haizhe/p/5906043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!