求助

P1304 哥德巴赫猜想

它叫你输出 4~n 全部的偶数,你`break`干嘛。 这和样例也不一样啊
by 日居月诸 @ 2021-01-27 18:05:17


@[ww4445](/user/406728) 应该这样 ```cpp #include<iostream> #include<cstdio> using namespace std; bool zhi(int a){ for(int i=2;i*i<=a;i++){ if(a%i==0) return 0; } return 1; } int main(){ int m; cin>>m; for(int n=4;n<=m;n+=2){ for(int i=2;;i++){ if(zhi(i)&&zhi(n-i)){ printf("%d=%d+%d\n",n,i,n-i); break; } } } return 0; } ```
by Pethly_Cat @ 2021-01-27 18:48:36


@[Pethly_Cat](/user/134066) 您这都没改好吗....
by GoldenFishX @ 2021-01-27 19:16:56


@[日居月诸](/user/73032) 啊这跳出的不是那个循环啊
by ww4445 @ 2021-01-27 19:38:48


@[Pethly_Cat](/user/134066) emmmm是哪里不一样
by ww4445 @ 2021-01-27 19:40:35


@[ww4445](/user/406728) 如果不加大括号的话,if 语句成立后只会执行 printf 语句, break 不在 if 成立后的范围内,也就是说无论是真是假都跳出了循环。所以得用大括号表示两条语句都是 if 成立后执行的
by Pethly_Cat @ 2021-01-27 19:54:45


@[Big_Caibi](/user/156353) ???
by Pethly_Cat @ 2021-01-27 19:55:23


@[Pethly_Cat](/user/134066) 奥奥,我才发现我没加大括号(/▽\)
by ww4445 @ 2021-01-27 19:58:24


@[日居月诸](/user/73032) 解决了,是我忘了加花括号
by ww4445 @ 2021-01-27 20:04:25


|