SPOJ prime1错误答案C ++

时间:2018-10-08 22:34:52

标签: c++

即使进行了许多更改,我仍然对此代码的答案有误。在这一点上,我找不到任何问题。我已经尝试了许多测试用例,但我无法使其正常工作。我正在尝试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;
}

0 个答案:

没有答案