判断一个数是否是素数。 输入 一个大于1且小于100000000的整数m. 输出 如果m是素数,输出“prime”,否则请输出 “not prime”请注意不需要输出引号,行尾输出换行。 样例输入 复制 10000019 样例输出 复制
时间: 2024-12-19 12:26:00 浏览: 5
要判断一个数是否是素数,你可以使用以下算法:
1. 首先,检查给定数字 `m` 是否小于或等于1,因为1不是素数。
2. 如果 `m` 是2,它是唯一的偶数素数,直接返回 "prime"。
3. 接着,遍历从2到 `sqrt(m)`(包含)范围内的所有整数i,其中 `sqrt(m)` 可用 `<cmath>` 库中的 `sqrt()` 函数获取。
- 对于每个 i,检查 `m` 是否能被 i 整除。如果能,则说明 `m` 不是素数,返回 "not prime"。
- 如果不能被整除,继续下一个 i。
4. 如果没有找到能整除 `m` 的数,那么 `m` 就是素数,返回 "prime"。
以下是C++代码实现这个算法:
```cpp
#include <iostream>
#include <cmath>
bool isPrime(int m) {
if (m <= 1) {
return false;
}
else if (m == 2) {
return true;
}
else if (m % 2 == 0) {
return false;
}
for (int i = 3; i <= std::sqrt(m); i += 2) { // 只检查奇数因子
if (m % i == 0) {
return false;
}
}
return true;
}
int main() {
int m;
std::cout << "Enter an integer between 1 and 100000000: ";
std::cin >> m;
if (isPrime(m)) {
std::cout << "prime\n";
} else {
std::cout << "not prime\n";
}
return 0;
}
```
阅读全文