11 条题解

  • -1
    @ 2022-5-1 17:31:09

    一道很简单的题目,上代码:

    #include <iostream>
    #include <algorithm>
    using namespace std;
    bool is_prime(int x) {
        if (x < 2 || (x > 2 && x % 2 == 0)) return false;
        for (int i = 3; i * i <= x; ++i)
            if (x % i == 0) return false;
        return true;
    }
    int main() {
        int n;
        while (~scanf("%d", &n)) {
            if (n == 0) break;
            bool flag = false;
            for (int i = 3; i <= n / 2; i += 2)
                if (is_prime(i) && is_prime(n - i)) {
                    printf("%d = %d + %d\n", n, min(i, n - i), max(i, n - i));
                    flag = true;
                    break;
                }
            if (!flag) puts("Goldbach's conjecture is wrong.");
        }
        return 0;
    }
    

    基础知识:质数(素数)的判断

    信息

    ID
    197
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    389
    已通过
    159
    上传者