哥德巴赫猜想:
如果任意一個大於6的偶數都可以寫成兩個素數之和。就將其稱為符合哥德巴赫猜想。
#include#include /// /// 判斷一個數是否是素數 /// /// 要判斷的數 ///如果是,返回true,否則,返回false static bool IsPrimeNumber(int intNum) { bool blFlag = true; //標識是否是素數 if (intNum == 1 || intNum == 2) //判斷輸入的數字是否是1或者2 blFlag = true; //為bool類型變量賦值 else { int sqr =(int)(sqrt((double)intNum)); //對要判斷的數字進行開方運算 for (int i = sqr; i >= 2; i--) //從開方後的數進行循環 { if (intNum % i == 0) //對要判斷的數字和指定數字進行求余運算 { blFlag = false; //如果余數為0,說明不是素數 } } } return blFlag; //返回bool型變量 } ////// 判斷一個數是否符合哥德巴赫猜想 /// /// 要判斷的數 ///如果符合,返回true,否則,返回false static bool ISGDBHArith(int intNum) { bool blFlag = false; //標識是否符合哥德巴赫猜想 if (intNum % 2 == 0 && intNum > 6) //對要判斷的數字進行判斷 { for (int i = 1; i <= intNum / 2; i++) { bool bl1 = IsPrimeNumber(i); //判斷i是否為素數 bool bl2 = IsPrimeNumber(intNum - i); //判斷intNum-i是否為素數 if (bl1 & bl2) { //輸出等式 printf("%d=%d+%d\n",intNum, i, intNum - i); blFlag = true; //break; //符合哥德巴赫猜想 } } } return blFlag; //返回bool型變量 } void main() { int a=0; printf("輸入一個大於6的偶數:\n"); scanf_s("%d",&a,10); bool blFlag = ISGDBHArith(a); //判斷是否符合哥德巴赫猜想 if (blFlag) { printf("%d能寫成兩個素數的和,所以其符合哥德巴赫猜想。",a); } getchar(); getchar(); }