验证哥德巴赫的猜想,任何一个大于2的偶数都可以写成两个素数之和。
#include<stdio.h>
int isPrime(int n);//判断n是否为素数,是返回1,不是返回2
int fun(int x,int *a,int *b);
int main()
{
int i,x,y;
for(i=4;i<=50;i+=2)
{
if(fun(i,&x,&y)==1)
printf("%2d=%d+%d\n",i,x,y);
else
printf("error");
}
return 0;
}
int fun(int x,int *a,int *b)
{
int i=2;
for(;i<=x;i++)
{
if(isPrime(i)==1 && isPrime(x-i)==1)
{
*a=i;
*b=x-i;
return 1;
}
}
return 0;
}
int isPrime(int n)
{
int i;
int flag=1;
for(i=2;i<n;i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
return flag;
}