其实,前一篇文章里的判断质数的方法很容易超时,所以,为大家准备了用筛法判断质数的代码:
#include <iostream>
using namespace std;
const int MAXN = 1000000;
bool isPrime[MAXN+1];
void p() {
for (int i = 2; i <= MAXN; i++) {
isPrime[i] = true;
}
for (int i = 2; i*i <= MAXN; i++) {
if (isPrime[i]) {
for (int j = i*i; j <= MAXN; j += i) {
isPrime[j] = false;
}
} }}bool is_prime(int n) {
if (n < 2) return false;
return isPrime[n];
}
int main() {
p();
int n;
cin >> n;
if (is_prime(n)) {
cout << n << " 是质数" << endl; }
else {
cout << n << " 不是质数" << endl;
}
return 0;
}