c语言验证哥德巴赫猜想
什么是哥德巴赫猜想,哥德巴赫猜想就是,任一大于2的偶数都可以写成两个素数之和,那么下面我们就用c语言去验证这种猜想 什么是哥德巴赫猜想,哥德巴赫猜想就是,任一大于2的偶数都可以写成两个素数之和,那么下面我们就用c语言去验证这种猜想
#include<stdio.h>
#include<math.h>
/*判断一个数是不是素数,如果是则返回true,否则返回false*/
bool IsPrimer(unsigned intNum)
{
bool bFlag = true;
if(1 == intNum || 2 == intNum)
{
bFlag = true;
}
else
{
//取intNum的平方根
int sqr = (int)sqrt((double)intNum);
for(int i = sqr; i >= 2; i--)
{
if(intNum % i == 0)
{
bFlag = false;
}
}
}
return bFlag;
}
/*判断是否符合哥德巴赫猜想,如果符合返回true,否则返回false*/
bool IsGdbhArith(unsigned intNum)
{
bool bFlag = false;
if((intNum >= 2) && (intNum % 2 == 0))
{
for(int i = 1; i <= intNum / 2; i++)
{
if(IsPrimer(i) && IsPrimer(intNum - i))
{
bFlag = true;
printf("%d is primer, %d + %d
",intNum,i,intNum - i);
}
}
}
return bFlag;
} void main()
{
unsigned intNum = 0; printf("please input a number:%d
"); scanf("%d",&intNum);
if(IsGdbhArith(intNum))
{
//do nothing
}
else
{
printf("This number isnt a primer
");
}
system("pause");
} #include
