验证一个偶数总能表示为两个素数之和,以下有两种表示方式:
//第一种:通过函数验证
#include <stdio.h>
int fun(int n);
int main()
{
int a,b,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2)
{
if(fun(b)) //调用函数判断
d=a-b; //如果是素数,则用输入的偶数减去这个素数
else
continue; //如果不是,则进行下一次判断
if(fun(d)) //将被减去之后那个数再次调用判断是否为素数,不是则进行下一次判断
printf("%d=%d+%d\n",a,b,d);
}
return 0;
}
int fun(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0) //判断是否素数,不是则返回0,是则返回1
return 0;
return 1;
}
//第二种方法未使用调用,方法与第一种类似
#include <stdio.h>
int main()
{
int a,b,c,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2)
{
for(c=2;c<b;c++)
if(b%c==0)break;
if(c>=b)
d=a-b;
else
break;
for(c=2;c<d;c++)
if(d%c==0)break;
if(c>=d)
printf("%d=%d+%d\n",a,b,d);
}
return 0;
}