AC 了的:
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
if (x == 2) return true;
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) return false;
}
return true;
}
int main()
{
int a, b;
cin >> a >> b;
int cnt = 0;
for (int i = a; i <= b; i++) {
if (isPrime(i)) cnt++;
}
cout << cnt;
return 0;
}
#1 WA 的:
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
if (x < 2) return false;
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) return false;
}
return true;
}
int main()
{
int a, b;
cin >> a >> b;
int cnt = 0;
for (int i = a; i <= b; i++) {
if (isPrime(i)) cnt++;
}
cout << cnt;
return 0;
}
就是函数里的特判有区别,为什么下面的不行??
还有我刚才写欧拉筛为啥也不行???
本蒟蒻不明白。。。
哪位 dalao 帮忙解答一下?