您的位置:首页 > 其它

T1157 哥德巴赫猜想(#Ⅰ- 6 - 1)

2018-03-06 17:33 162 查看

【题目描述】

哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。

【输入】

(无)
【输出】分行输出:
    例如:6=3+3
        8=3+5
        ...
   (每个数只拆开一次,请保证第一个加数最小)

【输入样例】

(无)

【输出样例】

(无)

【源程序】

#include<iostream>
#include<cmath>
using namespace std;
bool judge(int x);

int main()
{
int x;
int i;

for(x=6;x<=100;x+=2)//枚举6-100的偶数
for(i=2;i<=x/2;i++)//将x分解为i与x-i两个数
if(judge(i)&&judge(x-i))//若被分解的两个数皆为素数
{
cout<<x<<"="<<i<<"+"<<x-i<<endl;//输出
break;//终止循环
}
return 0;
}

bool judge(int x)//判断素数
{
int i=2;
while( i<=floor(sqrt(x)) && (x%i!=0) )
i++;
if(i>floor(sqrt(x)))
return true;
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: