洛谷 P1579 哥德巴赫猜想(升级版)

数据量很小,看有暴力check能做出来的,有规律优化的,可以线性筛,埃筛,反正怎么筛都行,枚举一下就AC了,甚至可以开个200010的数组打个质数表,我这里用的埃筛AC的。

AcCode:

#include<iostream>
#include<cmath>
#include<bitset>
using namespace std;
bitset<20010> nPrime;
void ePrime(int n){
    nPrime[0] = nPrime[1] = 1;
    int c = sqrt(n); //预处理
    for(int i = 2; i <= c; i++){
        if(!nPrime[i]) for(int j = i * i; j <= n; j += i) nPrime[j] = 1;
    }
}

int main(){
    int n;
    cin >> n;
    ePrime(n); //筛
    for(int i = 2; i < n; i++){
        for(int j = 2; j < n; j++){
            if(!nPrime[i] && !nPrime[j] && !nPrime[n - i - j]){
                cout << i << " " << j << " " << n - i - j; //找到就输出
                return 0;
            }
        }
    }
    return 0;
}
posted @ 2025-06-25 03:11  Yuhhhhh  阅读(19)  评论(0)    收藏  举报