P1579 哥德巴赫猜想(升级版)
程序是人类的财富!!11
-------------------------------------------
题目链接:MIKU
OK,Let's gi;
-------------------------------------------------
这道题很水的,就是个搜索
唯一的问题是时间复杂度(别想着倒着搜)
和字典序输出(递归是反着的)
--------------------------------------------------
/* 程序员是人类最大的财富 我也是 */ #include<iostream> using namespace std; int x; const int maxn=20001; int vis[20001]; int ans[4]; int chai(int z,int step) { if(step==3) { if(!vis[z]) { //cout<<z<<" "; ans[step]=z; return 1; } else return 0; } for(int i=3;i<=maxn;++i) { if(!vis[i]) if(chai(z-i,step+1)) {ans[step]=i; break; } } } int main() {//我知道欧拉筛更快,但是埃氏筛足够了 cin>>x; for(int i=2;i<=maxn;++i) if(!vis[i]) for(int j=i+i;j<=maxn;j+=i) { vis[j]=1; } if(!vis[x-4])//根据奇偶性,我们知道有两种可能 cout<<2<<" "<<2<<" "<<x-4; else { chai(x,1);//为了字典序 for(int i=1;i<=3;++i) cout<<ans[i]<<" "; } return 0; }