Java 判断素数(质数)的完整指南与代码实现
什么是素数?
素数(质数)是指大于 1 的自然数,除了 1 和它本身以外,没有其他因数。经典的素数包括:2、3、5、7、11、13、17……
关键点:
- 0 和 1 不是素数。
- 2 是唯一的偶素数。
Java 判断素数的算法实现
算法思路:
- 检查目标数能否被 2 到其平方根(或一半)之间的整数整除。若存在整除,则为合数。
- 一旦发现因数,立即跳出循环以提升效率。
- 若循环结束仍未找到因数,则为素数。
public class PrimeChecker {
public static void main(String[] args) {
int numberToCheck = 17; // 修改此值测试其他数字
boolean isPrime = true;
// 边界情况:小于 2 的数不是素数
if (numberToCheck < 2) {
isPrime = false;
} else {
// 优化:只需检查到 sqrt(numberToCheck) 即可
for (int i = 2; i <= Math.sqrt(numberToCheck); i++) {
int remainder = numberToCheck % i;
System.out.println(numberToCheck + " ÷ " + i + " = " + (numberToCheck / i) + " 余数 " + remainder);
if (remainder == 0) {
isPrime = false;
break;
}
}
}
if (isPrime) {
System.out.println(numberToCheck + " 是素数。");
} else {
System.out.println(numberToCheck + " 不是素数。");
}
}
}
运行示例输出
17 ÷ 2 = 8 余数 1
17 ÷ 3 = 5 余数 2
17 ÷ 4 = 4 余数 1
17 ÷ 5 = 3 余数 2
17 ÷ 6 = 2 余数 5
17 ÷ 7 = 2 余数 3
17 ÷ 8 = 2 余数 1
17 是素数。
你可以修改 numberToCheck 的值来测试任意整数,或扩展程序以查找 1 到 100 之间的所有素数。
java
- Java Hello World:你的第一个程序
- 精通 Java 运算符:类型、语法与实战示例
- Java 注释:类型、用法与最佳实践
- 精通 Java 增强 for 循环:语法、示例与最佳实践
- 精通 Java 字符串:创建、方法与最佳实践
- 精通 Java 接口:概念、实现与最佳实践
- 精通 Java Try-With-Resources:自动资源管理详解
- Java 注解详解:类型、放置位置与实战示例
- Java String.contains() 方法:检查子字符串是否存在(实战示例)
- Java 构造器重载详解:规则、链式调用与实战代码
- Java 打印 1 到 100 之间所有素数:完整代码与步骤解析
- Java 生成斐波那契数列:for 循环、while 循环与递归实现全解析