输入一个正整数 判断是否是素数
时间: 2024-12-15 22:13:57 浏览: 13
判断一个正整数是否为素数(质数)可以通过简单的算法进行检查。素数定义为只有两个正因数:1 和其本身。下面是一个基本的C++函数,用于判断一个数n是否为素数:
```cpp
#include <iostream>
// Function to check if a number is prime
bool isPrime(int n) {
// Check for some simple cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// If n is divisible by 2 or 3, it's not prime
if (n % 2 == 0 || n % 3 == 0)
return false;
// Check only odd numbers up to the square root of n, as factors come in pairs
int sqrt_n = static_cast<int>(sqrt(n));
for (int i = 5; i <= sqrt_n; i += 6) { // Steps are 6 because we already checked for 2 and 3
if (n % i == 0 || n % (i + 2) == 0)
return false;
}
return true;
}
int main() {
int num;
std::cout << "Enter a positive integer: ";
std::cin >> num;
if (isPrime(num))
std::cout << num << " is a prime number.\n";
else
std::cout << num << " is not a prime number.\n";
return 0;
}
```
在这个程序中,我们首先排除小于或等于1的数字,因为它们不是素数。接着,我们检查数字是否能被2或3整除,如果能则不是素数。然后,我们只需要检查从5开始到√n之间的奇数,因为所有大于√n的因子都能找到一个小于它的因子,使得这两个因子相乘等于n。
阅读全文