原文: https://www.programiz.com/java-programming/examples/prime-number

在本文中,您将学习检查数字是否为质数。 这是使用 Java 中的for循环和while循环完成的。

质数是一个只能被两个数字整除的数字:1 和它本身。 因此,如果任何数字可被其他数字整除,则它不是质数。

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

  1. public class Prime {
  2. public static void main(String[] args) {
  3. int num = 29;
  4. boolean flag = false;
  5. for(int i = 2; i <= num/2; ++i)
  6. {
  7. // condition for nonprime number
  8. if(num % i == 0)
  9. {
  10. flag = true;
  11. break;
  12. }
  13. }
  14. if (!flag)
  15. System.out.println(num + " is a prime number.");
  16. else
  17. System.out.println(num + " is not a prime number.");
  18. }
  19. }

运行该程序时,输出为:

29 is a prime number.

在上述程序中,for循环用于确定给定数字num是否为质数。 我们只需要遍历num的 2 到一半,因为没有数字可被其一半以上的整数整除。

for循环内,我们检查该数字是否可被给定范围(2..num/2)中的任何数字整除。 如果是,则将flag设置为true,我们就跳出了循环。 这确定number不是质数。

如果num不能被任何数整除,则flagfalse,而num为质数。


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

public class Prime {

    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为止。 在每次迭代中,检查num是否除以i,并将i的值增加 1。

访问此页面以了解如何显示两个时间间隔之间的所有质数。