📜  Java程序检查数字是否为质数

📅  最后修改于: 2020-09-26 19:06:18             🧑  作者: Mango

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

质数是一个只能被两个数字整除的数字: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。

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