统计素数个数-暴力破解
统计n以内的素数个数
素数:是能被1和自身整除的自然数,0、1除外
例如:
输入:100
输出:25
重点考察:埃筛法
public static void main(String[] args) {
System.out.println(bf(100));
}
//暴力算法
public static int bf(int n){
//设置一个计数器
int count =0;
//遍历100以内的所有数
for (int i = 2; i <n ; i++) {
//用isPrime方法,如果是素数返回1,不是返回0,赋值自增给计数器
count += isPrime(i)?1:0;
}
//返回计数器
return count;
}
判断一个数是不是素数
// private static boolean isPrime(int x) {
// //判断是否只能被1和本身整除
// for (int i = 2; i < x; i++) {
// if (x%i==0){
// return false;
// }
// }
// return true;
// }
//判断一个数是不是素数,优化
private static boolean isPrime(int x) {
//判断是否只能被1和本身整除,例如12,2*6,6*2判断了两次,我们只需要一半,即根号12,同时平方就是12
for (int i = 2; i *i< x; i++) {
if (x%i==0){
return false;
}
}
return true;
}
}