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