哥德巴赫猜想
哥德巴赫猜想是数论中存在最久的未解问题之一。这个猜想最早出现在1742年,哥德巴赫猜想可以陈述为:“任一大于2的偶数,都可表示成两个素数之和。”
1、将一个偶数分成两数之和;
2、判断两数是否为素数。
/*验证Goldbach猜想*/
#include <stdio.h>
int main ()
{
printf ("Function : Verify the Goldbach Conjecture.\n");
int a, b, i, j, num;
printf ("Please input a number:\n");
scanf ("%d",&num);
if( num <= 2 || num % 2 != 0)
printf ("Error:Number inputed > 2 && Even number\n");
else
{
for (i = 3;i <= num; i++)
{
j = num - i; //分成两数之和
a = primenum (i); //判断是否为素数
b = primenum (j);
if (a && b) //都是素数则满足哥德巴赫猜想
printf ("Goldbach Right! %d = %d + %d\n",num,i,j);
}
return 0;
}
}
//判断是否为素数,是返回1,不是返回0
primenum ( int m)
{
int k, n;
k = m / 2;
for (n = 2;n <= k; n++)
{
if (m % n == 0)
{
return 0;
break;
}
else if (n != k)
continue;
return 1;
}
}