c语言表示哥德巴赫猜想,用C语言来验证哥德巴赫猜想(定义的是int型)
哥德巴赫猜想:
如果任意一個大于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();
}
總結
以上是生活随笔為你收集整理的c语言表示哥德巴赫猜想,用C语言来验证哥德巴赫猜想(定义的是int型)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个qq网名带梦的!
- 下一篇: 正大黄骨鱼饲料多少钱一斤?