09-某个数内素数的个数
2026/9/27小于 1 分钟
问题描述
统计某个数内 是素数 的个数
素数的定义:大于1且只能被1和自身整除的数是素数否则就是合数, 比如:2或3都是质素
示例 1:
输入:100
输出:25
示例 2:
输入:2
输出:0
示例 3:
输入:3
输出:1
示例 4:
输入:17
输出:6解决方案
public class PrimeCount {
public static void main(String[] args) {
System.out.println(countsPrime(100));
System.out.println(countsPrime(2));
}
public static int countsPrime(int n){
if(0 == n || 1 == n ){
return 0;
}
int count = 0;
// 判断 2 - n for (int i = 2; i < n; i++) {
count= count + (isPrime(i) ? 1 : 0);
}
return count;
}
/**
* 判断这个数是不是素数
* @param target 要判断的数
* @return 结果
*/
public static boolean isPrime(int target){
// 2是素数所以从2开始,直接到true
for (int i = 2; i < target; i++) {
// 2 - target;中有任意一个数能整除就是 合数
if(target % i == 0){
return false;
}
}
return true;
}
}