它叫你输出 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