在此 C++ 程序中,我们将检查用户输入是否为素数。
一个素数或素整数(通常简称“素数”)是一个正整数,除了 1 和它本身之外没有其他除数。
例如 2、3、5、7、11。让我们以数字“5”为例,它是一个素数,因为数字“5”只有两个除数:“1”和“5”。所以素数只有两个除数。但是,4不是素数(它是合数),因为 2 x 2 = 4。
注意:数字“1”不是素数,因为它只有一个除数。

从用户那里获取一个正整数并将其存储在变量n中。一开始将布尔变量is_prime设置为 true。0 和 1 不是素数,所以我们首先要检查输入的数字是否为 0 或 1。如果数字是 0 或 1,则is_prime的值设置为 false。
if ( n= 0 // n=1 )
{
is_prime = false
}
否则,is_prime的值保持不变。即;is_prime = true;
然后检查数字是否可以被其他数字整除。这可以在 for 循环的帮助下完成。将i的值初始化为 2。循环将从“i =2”到“i <= n/2”开始,并且每次迭代将“i”的值增加“1”。循环在“i = n/2”处终止,因为我们无法找到超出“n/2”的因子。 如果用户输入的数字可以被“i”完美整除,那么is_prime被设置为 false,并且该数字将不是素数。我们使用模运算符在 if 条件 'n % i == 0' 中检查数字的可除性。
但是,如果输入的数字在整个循环中不能被“i”完美整除,则表示输入只能被“1”和它本身整除。因此,给定的输入是一个素数。
步骤 1: 调用头文件 iostream.
步骤 2:使用 namespace std。
步骤 3:打开 main()
步骤 4:声明整数类型变量n; 将布尔变量is_prime初始化为 true
步骤 5:打印一条消息以输入一个正整数。
步骤 6:将字符读入变量n;
步骤 7:检查输入的数字是 0 还是 1。如果为 true,则打印n不是素数
步骤 8:否则,执行循环以检查n是否为素数。
步骤 9:初始化i=2 并继续循环直到i<= n/2;
步骤 10:检查 (n % i== 0 )
步骤 11:如果为是,则设置is_prime = false;
步骤 12:如果is_prime为 true,则打印n为素数
步骤 13:否则打印n不是素数
步骤 14:退出。
#include <iostream>
using namespace std;
int main() {
int i, n;
bool is_prime = true;
cout << "Enter a positive integer: ";
cin >> n;
// 0 and 1 are not prime numbers
if (n == 0 || n == 1) {
is_prime = false;
}
// loop to check if n is prime
for (i = 2; i <= n/2; ++i) {
if (n % i == 0) {
is_prime = false;
break;
}
}
if (is_prime)
cout << n << " is a prime number";
else
cout << n << " is not a prime number";
return 0;
}
Enter a positive integer: 8 8 is not a prime number Run 2 Enter a positive integer: 5 5 is a prime number