题意:计算所有小于非负数整数 n 的质数数量。
分析:素数筛法
class Solution {
public int countPrimes(int n) {
boolean isPrime[]=new boolean[n];
for(int i=0;i<n;i++){
isPrime[i]=true;
}
for(int i=2;i*i<=n;i++){
if(isPrime[i]==false)continue;
for(int j=2;j*i<n;j++){
isPrime[i*j]=false;
}
}
int ans=0;
for(int i=2;i<n;i++){
if(isPrime[i]==true)ans++;
}
return ans;
}
}
本文介绍了一种使用素数筛法计算小于非负整数n的所有质数数量的方法。通过创建布尔数组标记每个数是否为质数,并迭代更新数组来排除非质数,最后统计质数数量。
345

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



