即使进行了许多更改,我仍然对此代码的答案有误。在这一点上,我找不到任何问题。我已经尝试了许多测试用例,但我无法使其正常工作。我正在尝试Eratosthenes的实现筛,该代码应该仍然可以工作。有人可以帮我解决吗? 谢谢。
#include <iostream>
using namespace std;
bool isprime(int n)
{
// Corner cases
if (n <= 1) {
return false;
}
if (n <= 3) {
return true;
}
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
for (int i = 5; i*i <= n; i = i + 6) {
if (n%i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
void primes(int num1, int num2) {
for (int i = num1; i <= num2; i++) {
if (isprime(i)) {
cout << i << endl;
}
}
}
int main() {
int size;
cin >> size;
int num1;
int num2;
for (int i = 0; i <= size; i++) {
cin >> num1 >> num2;
primes(num1, num2);
}
return 0;
}