何必这么烦琐。。。。
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int prime(int n)
{
int i,f=1;
if(n==2) return 1;
if(n%2==0||n==1) return 0;
else
{
for(i=3;i<=sqrt(n);i+=2)
{
if(n%i==0) {f=0;break;}
}
if(f==1) return 1;
if(f==0) return 0;
}
}
int main()
{
printf("歌德巴赫猜想:任何一个大于3的偶数都可以写成两个质数的和\n");
printf("请输入一个偶数然后Enter\n");
while(1)
{
int n,a,b,amount=0;
scanf("%d",&n);
for(a=2;a<=n/2;a++)
{
if(prime(a))
{
b=n-a;
if(prime(b))
{
printf("%d=%d+%d\n",n,a,b);
amount++;
}
}
}
printf("总数=%d\n",amount);
printf("\n");
}
system("pause");
return 0;
}
[/mw_shl_code]
|