哥德巴赫猜想(驗證2000以內的正偶數能夠分解成兩個素數之和)
阿新 • • 發佈:2019-01-28
哥德巴赫猜想:
任何一個大於6的偶數都可以表示成兩個素數之和,任何一個大於9的奇數都可以表示成三個素數之和。
試驗證2000以內的正偶數能夠分解成兩個素數之和:
#include <iostream> #include <math.h> using namespace std; //驗證2000以內的正偶數能夠分解成兩個素數之和 //判斷是否為素數 int fflag(int i) { int j; //<=1不是素數 if(i<=1) { return 0; } //2是素數 if(i==2) { return 1; } //如果是偶數返回0 if(!(i%2)) { return 0; } for(j=3;j<=(int)(sqrt((double)i)+1);j+=2) { if(!(i%j)) { return 0; } return 1; } } int main(int argc, char** argv) { int i,n; //2000以內的正偶數,從4開始,步長為2 for(i=4;i<=2000;i++) { for(n=2;n<i;n++)//將偶數i分解為兩個整數 { if(fflag(n))//從2開始迴圈判斷是否為素數 if(fflag(i-n))//判斷i-n是否為素數 {//分解為兩個素數之和則輸出 cout<<i<<"="<<n<<"+"<<i-n<<endl; break; } } if(n==i) cout<<"error\n"; } return 0; }