用C++输入一个正整数,然后判断它是否是质数,若不是质数,输出因子
时间: 2024-11-09 11:23:32 浏览: 17
在C++中,可以编写如下的代码来实现这个功能:
```cpp
#include <iostream>
using namespace std;
// 判断一个数是否为质数
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) { // 只需检查到num的平方根即可
if (num % i == 0)
return false;
}
return true;
}
int main() {
int inputNum;
cout << "请输入一个正整数:";
cin >> inputNum;
if (isPrime(inputNum)) {
cout << "这是一个质数。" << endl;
} else {
cout << "这不是一个质数,它的因子有:";
for (int i = 2; i <= inputNum / 2; i++) { // 因子一定小于或等于n/2
if (inputNum % i == 0) {
cout << i << " ";
}
}
cout << inputNum << endl; // 自身也是因子
}
return 0;
}
```
在这个程序中,我们首先通过`isPrime`函数来判断输入的数字是否为质数。如果不是,我们就找出并打印出所有小于或等于输入数值一半的因子。
阅读全文