//编程序exp4_5.c,验证歌德巴赫猜想:2000以内的正偶数(不包括2)都能够分解为两个质数之和。
//(算法提示:将整数分解为两个整数,然后判断它们是否均为质数。若是,则满足题意并输出;
//否则重新进行分解和判断。其中,判断一个整数是否为质数采用函数实现。
//每个偶数只要得到一种分解就停止,不必要求出该偶数的所有质数和组合)。
#include<stdio.h>
int Zs(int x) //判断质数(仍可优化)
{
for(int i=2;i<x;i++)
{
if(x%i==0)
return 0;
}
return 1;
}
int Os(int x) //判断是否为偶数
{
if(x%2==0)
return 1;
}
void Pd(int x) //核心判断语句,判断偶数的两个质数和
{
int x1=x-2;
int x2=2;
while(x1>x2)
{
if(Zs(x1)&&Zs(x2)&&Os(x1))
{
printf("%d+%d=%d\n",x2,x1,x);
break;
}
x1=x1-1;
x2=x2+1;
}
}
int main()
{
for(int i=4;i<300;i+=2)
{
Pd(i);
}
return 0;
}
大二(上) 答疑 验证歌德巴赫猜想
猜你喜欢
转载自blog.csdn.net/qq_43271844/article/details/84680216
今日推荐
周排行