C++ 输入一个正整数n,判断n是否为质数?
时间: 2024-10-10 15:08:43 浏览: 33
在C++中,判断一个正整数n是否为质数通常会采用试除法的思路。如果n小于2,它不是质数;如果n等于2,它是质数。对于大于2的数,我们需要检查从2到sqrt(n)范围内的所有整数,看它们能否整除n。若存在这样的因子,则n不是质数,否则它是质数。
下面是一个简单的函数示例:
```cpp
#include <iostream>
#include <cmath>
bool isPrime(int n) {
if (n <= 1) {
return false;
} else if (n == 2) {
return true;
} else if (n % 2 == 0) { // 质数除了2以外不能有偶数因子
return false;
}
int sqrtN = std::sqrt(n);
for (int i = 3; i <= sqrtN; i += 2) { // 只需要检查奇数因子
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
std::cout << "请输入一个正整数: ";
std::cin >> n;
if (isPrime(n)) {
std::cout << n << " 是质数.\n";
} else {
std::cout << n << " 不是质数.\n";
}
return 0;
}
```
阅读全文