# Java 程序：检查数字是否为质数

> 原文： [https://www.programiz.com/java-programming/examples/prime-number](https://www.programiz.com/java-programming/examples/prime-number)

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

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

## 示例 1：使用`for`循环检查质数的程序

```java
public class Prime {

    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.");
    }
}
```

运行该程序时，输出为：

```java
29 is a prime number.
```

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

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

如果`num`不能被任何数整除，则`flag`为`false`，而`num`为质数。

* * *

## 示例 2：使用`while`循环检查质数的程序

```java
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.");
    }
}
```

When you run the program, the output will be:

```java
33 is not a prime number.
```

在上面的程序中，使用`while`循环代替`for`循环。 循环一直运行到`i <= num/2`为止。 在每次迭代中，检查`num`是否除以`i`，并将`i`的值增加 1。

访问此页面以了解如何[显示两个间隔之间的所有质数](/java-programming/examples/prime-number-interval "Display all prime numbers between two intervals ")。