首页 > 其他 > 详细

质数问题

时间:2015-05-08 10:50:56      阅读:136      评论:0      收藏:0      [点我收藏+]

求包含n的n以内所有质数,从第一个质数开始,则该质数的倍数为合数,一直到sqrt(n),便可以找出所有质数

class Solution {
public:
    int countPrimes(int n) 
    {
        if (n <= 2) return 0;
        vector<bool> primes(n+1,true);
        for(int i=3;i<=sqrt(n);i++)
        {
            if(primes[i])
            {
                for(int j=i*i;j<=n;j+=i)
                    primes[j]=false;
            }
        }
        int count=0;
        for(int i=2;i<=n;i++)
            if(primes[i]) count++;
        return count;
    }
};


质数问题

原文:http://blog.csdn.net/lp2hsf/article/details/45576605

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!