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