69,382
社区成员
发帖
与我相关
我的任务
分享
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); }
直到b>a/2.
#include "stdio.h"
#include "math.h"
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; //为什么不加这句话就出不来呀,还有哪个高人能解释下每个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);
}
//break直接跳出了FOR循环体,到了这里,函数直接了
}
#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; //为什么不加这句话就出不来呀,还有哪个高人能解释下每个break后运行那条语句吗?
}//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);
}
return 0;
}