#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2)
{
for(c=2;c<=sqrt(b);c++)
if(b%c==0)
break;
if(c>sqrt(b))
d=a-b;
else
break;
for(c=2;c<=sqrt(d);c++)
if(d%c==0)
break;
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d);
}
}
这是源码 思路我知道 判断一个是不是素数 是再判断偶数减第一个素数的结果 素不素
我有点疑惑 中间那个else break;break不是跳出循环吗 若b不是素数那b不是没办法继续循环b+2了
用continue调到for循环结束花括号左边不是比较合理吗
可能迷糊了 求明人指导一下 谢了
#include<math.h>
int main()
{
int a,b,c,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2)
{
for(c=2;c<=sqrt(b);c++)
if(b%c==0)
break;
if(c>sqrt(b))
d=a-b;
else
break;
for(c=2;c<=sqrt(d);c++)
if(d%c==0)
break;
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d);
}
}
这是源码 思路我知道 判断一个是不是素数 是再判断偶数减第一个素数的结果 素不素
我有点疑惑 中间那个else break;break不是跳出循环吗 若b不是素数那b不是没办法继续循环b+2了
用continue调到for循环结束花括号左边不是比较合理吗
可能迷糊了 求明人指导一下 谢了
