质数是一个只能被两个数字整除的数字: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)
{
// 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;
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
为止。在每次迭代中,无论是由i被检查和i的值递增1 num是divisble。
访问此页面以了解如何显示两个间隔之间的所有素数。