题目:
Description:
Count the number of prime numbers less than a non-negative number, n.
分析:
本题是要统计0~n的素数个数,这个要根据hint中的提示,利用埃拉托色尼筛法,需要去除0~开根号n之间整数的倍数,比如从2开始,去除2*2,2*3,…;最后剩下的就是0~n的素数。
代码:
public class countPrimes {
public static int count(int n){
System.out.println("test");
boolean[] a=new boolean[n];
for(int i=2;i*i<n;i++){
if(!a[i]){
for(int j=i;i*j<n;j++){
a[i*j]=true;
}
}
}
int c=0;
for(int i=2;i<n;i++){
if(a[i]==false) ++c;
}
System.out.println("c:"+c);
return c;
}
public static void main(String[] args){
System.out.println("哈哈哈");
int n=10;
int c=count(n);
System.out.println("primesCount:"+c);
}
}