题目描述
所谓哥德巴赫猜想是指,任一大于2的偶数都可以写成两个质数之和(严格说来,这是欧拉的等价描述版本)。例如6=3+3,8=3+5,...,18=7+11。迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。试编写程序,验证任一大于2的偶数都能写成两个质数之和。(可能有多种情况,请输出两数差最大的那组)
输入要求
输入一个大于2的偶数N。
输出要求
输出两个质数和的形式,小的质数在前,大的质数在后。
#include<stdio.h>
int zspd(int a);
int main()
{
int n;
scanf_s("%d", &n);
for (int i = 2; i <= n - 2; i++) {
if (zspd(i) && zspd(n - i)){
printf("%d=%d+%d\n",n,i,n-i);
break;
}
}
}
int zspd(int a)
{
int i,b;
for (i = 2; i <= a / 2;i++) {
if (a % i == 0)break;
}
if (i == a / 2 + 1)b = 1;
else b = 0;
return b;
}