跳到主要内容

Java 程序:检查一个数字是否为质数

要理解这个示例,你应该具备以下 Java 编程主题的知识:

素数是只能被 1 和它本身整除的数字。所以,如果某个数字能被其他数字整除,那它就不是素数。

示例 1:使用 for 循环检查素数的程序

public class Main {

public static void main(String[] args) {

int num = 29;
boolean flag = false;
for (int i = 2; i <= num / 2; ++i) {
// 判断非素数的条件
if (num % i == 0) {
flag = true;
break;
}
}

if (!flag)
System.out.println(num + " 是一个素数。");
else
System.out.println(num + " 不是一个素数。");
}
}

输出

29 是一个素数。

在上述程序中,使用 for 循环来判断给定的数字 num 是否为素数。

注意,我们的循环从 2 到 num/2。这是因为一个数字不会被它的一半以上的数字整除。

for 循环中,我们检查数字是否能被给定范围内的任何数字 (2...num/2) 整除。

  • 如果 num 可以被整除,flag 被设置为 true 并跳出循环。这确定 num 不是素数。
  • 如果 num 不能被任何数字整除,flag 为 false,num 是一个素数。

示例 2:使用 while 循环检查素数的程序

public class Main {

public static void main(String[] args) {

int num = 33, i = 2;
boolean flag = false;
while (i <= num / 2) {
// 判断非素数的条件
if (num % i == 0) {
flag = true;
break;
}

++i;
}

if (!flag)
System.out.println(num + " 是一个素数。");
else
System.out.println(num + " 不是一个素数。");
}
}

输出

33 不是一个素数。

在上述程序中,使用 while 循环代替了 for 循环。循环运行直到 i <= num/2。每次迭代都会检查 num 是否能被 i 整除,并将 i 的值加 1。

访问此页面了解如何显示两个区间之间的所有素数