问题提出:
哥德巴赫猜想是世界近代三大数学难题之一。
哥德巴赫是德国一位中学教师,也是一位著名的数学家,生于1690年,1725年当选为俄国彼得堡科学院院士。
1742年,哥德巴赫在教学中发现,任意一个大于6的偶数都可以分解成两个素数(只能被1和它本身整除的数)之和。
解题思路:
这个问题证明起来非常难,作者也不懂,这里我们只针对该问题进行验证。
参考代码:
/* linolzhang 2007.03
Goldbach
*/
#include <stdio.h>
#include <math.h>
bool isPrime(int m)
{
int n = sqrt( (float)m );
int i = 2;
for( ; i<=n; i++)
if(m%i == 0)
break;
bool bPrime = i>=n+1 ? true : false;
return bPrime;
}
int main()
{
int N;
while(true)
{
printf("请输入任意正整数(>3):");
scanf("%d",&N);
for(int x=3; x<=N; x+=2)
{
if(isPrime(x) == 1 && isPrime(N-x) == 1)
{
printf("%d = %d + %d\n\n",N, x,N-x);
break;
}
}
}
return 0;
}