离大谱

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

haijun_ @ 2023-03-12 11:30:31

把2单独拿出来就过了?


#include<bits/stdc++.h>
using namespace std;
bool pd(int x){
    bool flag=1;
    for(int i=2;i*i<=x;i++){
        if(x%i==0){
            flag=0;break;
        }
    }
    return flag;
}
int main(){
    int n;
    cin>>n;
    if(pd(n-4)){
        cout<<"2 2 "<<n-4;
        return 0;
    }
    else{
        for(int i=3;i<=n;i++){
            if(pd(i)){
                for(int j=3;j<=n;j++){
                    if(pd(j)){
                        for(int k=n;k>2;k--){
                            if(pd(k) and i+j+k==n){
                                cout<<i<<" "<<j<<" "<<k;
                                return 0;
                            }
                        }
                    }
                }
            }
        }
    }

}

|