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

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

#### 使用`for`循环和`if...else`语句检查整数（由用户输入）是否为质数的示例。

要理解此示例，您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题：

*   [C++ `if`，`if...else`和嵌套`if...else`](/cpp-programming/if-else)
*   [C++ `for`循环](/cpp-programming/for-loop) 
*   [C++ `break`和`continue`语句](/cpp-programming/break-continue)

* * *

仅可被 1 整除的正整数本身称为质数。

例如：13 是质数，因为它只能被 1 和 13 整除，而 15 不是质数，因为它可以被 1、3、5 和 15 整除。

* * *

## 示例：检查质数

```cpp
#include <iostream>
using namespace std;

int main() {
   int n, i;
   bool isPrime = true;

   cout << "Enter a positive integer: ";
   cin >> n;

   for (i = 2; i <= n / 2; ++i) {
      if (n % i == 0) {
         isPrime = false;
         break;
      }
   }
   if (isPrime)
      cout << n << " is a prime number";
   else
      cout << n << " is not a prime number";

   return 0;
} 
```

**输出**

```cpp
Enter a positive integer: 29
29 is a prime number.
```

该程序从用户处获取一个正整数，并将其存储在变量`n`中。

然后，执行`for`循环，检查用户输入的数字是否可以被`i`完全整除。

`for`循环以`i`等于 2 的初始值开始，并在每次迭代中增加`i`的值。

如果用户输入的数字可以被`i`完全整除，则`isPrime`设置为`false`，该数字将不是质数。

但是，如果直到测试条件`i <= n/2`为`true`时，该数字都不能被`i`完全整除，则它只能被 1 和该数字本身整除。

因此，给定数字是质数。