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

质数问题

时间:2015-05-08 10:53:39      阅读:109      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!