题目描述:
Count the number of prime numbers less than a non-negative number, n.
Example:
Input: 10
Output: 4
Explanation: There are 4 prime numbers less than 10, they are 2, 3, 5, 7.
计算1~n范围内的质数,要保证查找的是质数,那么就要排除不是质数的数,所以每次发现一个质数就让它乘以其他数,从而排除以它为因数的其他数,因此还需要利用哈希表或者数组存储每个数的访问情况。
class Solution {
public:
int countPrimes(int n) {
vector<int> v(n,0);
int count=0;
for(int i=2;i<n;i++)
{
if(v[i]==0)
{
count++;
v[i]=1;
for(int j=2;i*j<n;j++) v[i*j]=1;
}
}
return count;
}
};
本文介绍了一种计算小于非负整数n的所有质数数量的方法。通过使用哈希表或数组来标记已检查过的数字是否为质数,该算法有效地避免了重复检查,并通过遍历所有小于n的数字,如果某个数字未被标记,则将其视为质数并标记其倍数,以此来计算质数的数量。
319

被折叠的 条评论
为什么被折叠?



