public class PrimeCount {
// 判断一个数是否是质数
public static boolean isPrime(int num) {
// 小于 2 的数不是质数
if (num < 2) {
return false;
}
// 试除法:检查从 2 到 sqrt(num) 是否能整除
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 统计 2 ~ n 之间的质数个数
public static int countPrimes(int n) {
int count = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
count++;
}
}
return count;
}
public static void main(String[] args) {
int max = 100; // 统计 100 以内质数数量
int result = countPrimes(max);
System.out.println(max + " 以内的质数数量:" + result);
}
}
代码分析与说明
1. 核心方法:isPrime (int num)
-
功能:判断一个数是否为质数
-
逻辑:
- 小于 2 → 不是质数
- 遍历 2 ~ √num,若能被整除 → 不是质数
- 都不能整除 → 是质数
-
优化点:只循环到平方根,大幅减少计算量
2. 统计方法:countPrimes (int n)
- 功能:统计 2 ~ n 之间所有质数的总数
- 逻辑:遍历每个数字,调用
isPrime判断,是质数则计数 +1
3. 主方法 main
- 设置范围(如 100 以内)
- 调用统计方法并输出结果
4. 运行结果
100 以内的质数数量:25
