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

📅  最后修改于: 2020-09-25 06:27:44             🧑  作者: Mango

使用for循环和if … else语句检查整数(由用户输入)是否为质数的示例。

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

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

注意: 0和1不是质数。

示例:检查素数

#include 
using namespace std;

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

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

    // 0 and 1 are not prime numbers
    if (n == 0 || n == 1) {
        isPrime = false;
    }
    else {
        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;
}

输出

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

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

另外,请注意,在程序开始时,布尔变量isPrime被初始化为true

由于01不是素数,因此我们首先检查输入数字是否为这些数字之一。如果输入数字为01 ,则isPrime的值设置为false

否则, isPrime的初始值保持不变,并执行for循环,该循环检查用户输入的数字是否可以被i完全整除。

for循环以i的初始值等于2发起,并在每次迭代时将i的值增加1。

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

但是,如果在整个循环中i不能完全将输入数字整除,则意味着输入数字只能被1整除,并且该数字本身也可以整除。

因此,给定数字是质数。