哥德巴赫猜想(信息学奥赛一本通-T1157)
生活随笔
收集整理的這篇文章主要介紹了
哥德巴赫猜想(信息学奥赛一本通-T1157)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
哥德巴赫猜想的命題之一是:大于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; }總結
以上是生活随笔為你收集整理的哥德巴赫猜想(信息学奥赛一本通-T1157)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理论基础 —— 查找 —— 二分查找
- 下一篇: 求一元二次方程(信息学奥赛一本通-T10