我哪错了呀?还是一直是0分

P1304 哥德巴赫猜想

可能有点不好理解但是能AC $QwQ$ ``` #include<bits/stdc++.h> using namespace std; int main() { int a,b,i,j,nn,num=0,n,flag1,flag2; cin>>nn; for(int n=2;n<=nn;n+=2) { if(n==4) { cout<<"4=2+2"<<endl; continue; } for(a=3; a<=n; a++) { flag1=1; for(i=2; i<=a/2; i++) if(a%i==0) { flag1=0; continue; } if(flag1==1) { b=n-a; flag2=1; for(j=2; j<=b/2; j++) if(b%j==0) { flag2=0; continue; } if(flag2==1) { cout<<n<<"="<<a<<"+"<<b<<endl; break; }//end flag2 }//end flag1 } } //cout<<num<<endl; } ```
by EdisonBa @ 2020-08-14 10:51:38


```cpp #include<bits/stdc++.h> using namespace std; int a[114514];//用来存质数 0为质数 1不是质数 int main(){ a[1]=1;//众所周知1不是质数 for(int i=2;i<10005;i++){//筛法求素数 会快些 for(int j=2;j<=10005/i;j++){ if(a[i]==0){ a[i*j]=1; } } } int n; cin>>n;//输入 for(int i=4;i<=n;i+=2){//每次加2 就都是质数 for(int j=2;j<=5000;j++){//最大跑到5000+5000就可以了 再大也是重复 if(a[j]==0&&a[i-j]==0){//如果满足就输出 printf("%d=%d+%d\n",i,j,i-j); break;//输出完肯定是最小结果了 跳出 } } } //学艺不精不会欧筛QAQ return 0; } ```
by 田所浩二de114514 @ 2020-08-16 08:37:05


喔,谢谢啦~
by Hulinlin2010422 @ 2020-08-18 16:02:03


|