判断长整型变量S是否是素数,主函数输入S,判断素数用函数实现
时间: 2024-03-10 07:45:37 浏览: 62
判断一个整数是否是素数
好的,这是一个判断长整型变量是否是素数的 C++ 函数实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(long long num) {
if (num < 2) return false; // 素数必须大于等于 2
if (num == 2) return true; // 特判 2
if (num % 2 == 0) return false; // 排除偶数
long long sqrt_num = sqrt(num);
for (long long i = 3; i <= sqrt_num; i += 2) { // 只需要判断奇数
if (num % i == 0) return false;
}
return true;
}
int main() {
long long s;
cout << "请输入一个长整型变量 s:";
cin >> s;
if (isPrime(s)) {
cout << s << " 是素数" << endl;
} else {
cout << s << " 不是素数" << endl;
}
return 0;
}
```
该函数首先判断 num 是否小于 2,若小于 2 则不是素数,直接返回 false。然后特判 2,因为 2 是最小的素数。接着排除所有偶数,因为除了 2,偶数都不是素数。最后只需要判断奇数是否能被奇数整除即可,其中 sqrt_num 表示 num 的平方根,只需要判断到 sqrt_num 就行了,因为如果 num 不是素数,那么它一定有一个小于等于 sqrt_num 的因子和一个大于 sqrt_num 的因子,而这两个因子必定有一个小于等于 sqrt_num,因此只需要判断到 sqrt_num 即可。
阅读全文