首页 > 学院 > 开发设计 > 正文

204. Count Primes

2019-11-08 02:19:37
字体:
来源:转载
供稿:网友

题目

Description:

Count the number of PRime numbers less than a non-negative number, n.

Credits: Special thanks to @mithmatt for adding this problem and creating all test cases.


思路

普通的计算素数个数效率太低,这里用空间换时间,搞一个各个数的flag,通过flag来计算素数个数


代码

class Solution {public: int countPrimes(int n) { if(n < 2) { return 0; } //传统的素数判断效率比较低,这里用空间换时间,搞一个各个数的标志flag vector<int> primerFlag(n+1,true); int upperBound = sqrt(n); int primerCount = 0; for(int i=2;i<n;i++) { if(primerFlag[i]) { primerCount++; if(i > upperBound) { continue; } for(int j=i;j*i<n;j++) { primerFlag[j*i] = false; } } } return primerCount; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表