素数是只能被两个数字整除的数字:1 和它本身。因此,如果一个数字可以被任何其他数字整除,它就不是素数。
示例 1:使用 for 循环检查素数的程序
public class Main {
public static void main(String[] args) {
int num = 29;
boolean flag = false;
// 0 and 1 are not prime numbers
if (num == 0 || num == 1) {
flag = true;
}
for (int i = 2; i <= num / 2; ++i) {
// condition for nonprime number
if (num % i == 0) {
flag = true;
break;
}
}
if (!flag)
System.out.println(num + " is a prime number.");
else
System.out.println(num + " is not a prime number.");
}
}
输出
29 is a prime number.
在上面的程序中,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;
// 0 and 1 are not prime numbers
if (num == 0 || num == 1) {
flag = true;
}
while (i <= num / 2) {
// condition for nonprime number
if (num % i == 0) {
flag = true;
break;
}
++i;
}
if (!flag)
System.out.println(num + " is a prime number.");
else
System.out.println(num + " is not a prime number.");
}
}
输出
33 is not a prime number.
在上面的程序中,while 循环被用来代替 for 循环。循环一直运行直到 i <= num/2
。在每次迭代中,都会检查 num 是否可以被 i 整除,并将 i 的值增加 1。
另请阅读