本文共 1676 字,大约阅读时间需要 5 分钟。
哥德巴赫猜想:
如果任意一个大于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();}
转载地址:http://ezxfb.baihongyu.com/