数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证5000以内的偶数都可以分解成两个素数之和。
#include<stdio.h>
#include<math.h>
int _num (int);
int main()
{
int a,b,m,n,num,s=1;
scanf("%d",&num);
for(a=2;a<=num/2 && s==1;a++)
{
m=_num(a);
if(m==1)
continue;
else
{
for(b=2;b<=num-a;b++)
{
n=_num(b);
if(n==1)
continue;
else
if(a+b==num)
{
s=-s;
printf("%d = %d + %d",num,a,b);
break;
}
}
}
}
return 0;
}
int _num (int x)
{
int i;
if(x==3 || x==2)
{
return 0;
}
else
{
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0)
return 1;
}
return 0;
}
}