萌新求助,哥德巴赫猜想的证明题,思路上面的困惑。
哥德巴赫猜想是认为大于2的偶数必为两个质数相加得到的和,我现在是要给定一个范围,找到这范围里面的偶数它所被分解的质数(只要找到一组即可),按照我编的程序,第一个质数是能被找到的,但是第二个质数总是无法找到,程序无法识别出第二个质数,这个问题想了半天想得我头晕脑胀,一直无果,所以现在贴出来希望各位大神能帮帮忙,给我这个小白一点思路上的帮助,下楼贴代码。
#include<stdio.h>
int prime(int n);
int main()
{
int j,n,s,i,c,b,a;
scanf("%d",&j);
s=0;
a=0;
for(i=j;i<=j+10;i+=2)
{
printf("%d=",i);
for(n=1;n<=i;n++)
{
c=prime(n);
if(c==1)
{
b=i-n;
a=prime(b);/*就是这个位置,prime遇到合数也还是返回1这个值,导致后面打印出合数*/
if(a==1)
{
printf("%d+",n);
printf("%d\n",b);
break;
}
}
}
}
return 0;
}
int prime(int n)
{
int i,result;
if(n<=2)
result=0;
else
{
for(i=2;i<n;i++)
{
if(n%i==0)
break;
}
if(i>=n)
result=1;
}
return result;
}