对于任意给定一个正整数(大于等于1),判断其是否为质数(素数)。 素数为除1和其本身,没有其他因数。如17,不被2到16的任何整数整除,则17为质数。 若输入为质数则输出YES,否则输出NO; 注:1不是质数。
时间: 2024-12-20 07:23:01 浏览: 7
要判断一个正整数n是否为质数,你可以使用经典的“试除法”算法,即检查从2到√n(因为如果n有因子p,那么至少有一个因子小于或等于它的平方根)之间是否有任何数能整除n。如果没有找到这样的因子,那么n就是质数。
以下是一个简单的C++代码示例:
```cpp
#include <iostream>
#include <cmath>
bool isPrime(int n) {
if (n <= 1) {
return false; // 1不是质数
}
if (n == 2) {
return true; // 2是最小的质数
}
if (n % 2 == 0) {
return n == 2; // 偶数(除了2)都不是质数
}
for (int i = 3; i <= std::sqrt(n); i += 2) { // 只需检查奇数
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int num;
std::cout << "Enter a positive integer: ";
std::cin >> num;
if (isPrime(num)) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}
return 0;
}
```
阅读全文