从键盘任意输入一个整数m,若m不是素数,则计算并输出m的所有因子(不包括1),例如对于16,输出2、4、8;否则输出“m是素数!”。要求:判断素数必须使用自定义函数实现,m通过主函数输入
时间: 2024-03-23 08:42:49 浏览: 162
判断一个数是否是素数, 如果不是输出它的所有因子
好的,我已经理解了你的问题。以下是 C++ 代码实现:
```
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if(n <= 1) return false;
for(int i = 2; i <= sqrt(n); i++) {
if(n % i == 0) return false;
}
return true;
}
int main() {
int m;
cin >> m;
if(isPrime(m)) {
cout << m << "是素数!" << endl;
}
else {
cout << m << "的因子有:";
for(int i = 2; i <= m / 2; i++) {
if(m % i == 0) {
cout << i << " ";
}
}
cout << endl;
}
return 0;
}
```
代码中的 `isPrime` 函数用于判断一个整数是否是素数,若是素数则返回 `true`,否则返回 `false`。主函数中先读入整数 `m`,然后判断它是否是素数,如果是素数则输出提示信息,否则遍历 `m` 的所有因子并输出。
阅读全文