问题描述】验证哥德巴赫猜想:任意充分大的偶数,可以用两个素数之和表示。
【输入形式】一个大于2的偶数,以回车结束
【输出形式】每行一对素数,小的素数在前,以空格隔开,多组用多行表示,小的素数在前;
【样例输入】
10
【样例输出】
3 7
【样例输入】
20
【样例输出】
3 17
7 13
老哥们实在做不出来了。。。我做的都不对 初学C语言 这个该用哪个循环啊?
include
include
main( )
{
long int j,n,p,q,flagp,flagq;
printf(“please input n :n”);
scanf(“%ld”,&n );
if (((n%2)!=0)||(n<=4))
printf("input data error!\n");
else
{
p = 1 ;
do {
p = p + 1 ;
q = n - p ;
flagp = 1 ;
for(j=2;j<=(int)(sqrt(p));j++)
{
if ((p%j)==0)
{
flagp = 0 ;
break;
}
}
flagq=1 ;
for(j=2;j<=(int)(sqrt(q));j++)
{
if ((q%j)==0)
{
flagq = 0 ;
break ;
}
}
} while(flagp*flagq==0);
printf(“%d %d”,p,q) ;
}
我的代码不对。。真心求教各位老哥!