C/C++程序训练6---歌德巴赫猜想的证明
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
验证“每个不小于6的偶数都是两个素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。
Input
输入一个不小于6的偶数n。
Output
找出两个素数,使它们的和为n。只需要输出其中第一个素数最小的一组数据即可。
Example Input
80
Example Output
80=7+73
Hint
Author
参考代码
#include<stdio.h>
int h(int n)
{
int i;
if(n < 2)
{
return 0;
}
else if(n == 2)
{
return 1;
}
else
{
for(i = 2; i < n; i++)
{
if(n % i == 0)
break;
}
if(i == n)
{
return 1;
}
else
{
return 0;
}
}
}
int f(int n)
{
int i;
int flag;
for(i = 2; i < n; i++)
{
flag = h(i);
if(flag)
{
flag = h(n-i);
if(flag)
{
return i;
break;
}
}
}
}
int main()
{
int n;
int a,b;
int i;
scanf("%d",&n);
a = f(n);
b = n - a;
printf("%d=%d+%d",n,a,b);
return 0;
}