验证歌德巴赫猜想的简单程序

作者在 2006-08-09 18:57:00 发布以下内容

哥德巴赫猜想是世界近代三大数学难题之一。1742年,哥德巴赫在教学中发现,每个不小于6的偶数都是两个素数(只能被和它本身整除的数)之和,如6331257等等。当年,哥德巴赫写信给当时的大数学家欧拉,提出了以下的猜想:

  (a)任何一个≥6之偶数,都可以表示成两个奇质数之和。

  (b)任何一个≥9之奇数,都可以表示成三个奇质数之和。

这就是著名的哥德巴赫猜想。目前最佳的结果是中国数学家陈景润于1966年证明的,称为陈氏定理(ChensTheorem)。“任何充分大的偶数都是一个质数与一个自然数之和,而后者仅仅是两个质数的乘积”,通常都简称这个结果为大偶数,可表示为“1+2”的形式。

#include <stdio.h>
#include <math.h>

int isPrime(int number){         //判断number是否素数
        int i;
        int n;
        if(number == 1)
                return 0;
        n = sqrt(number) + 2;
        for(i = 2;i < n;i++)
                if(number % i == 0)
                        return 0;
        return 1;
}

int main(void){
        int number;
        int i;
        do{
                printf("Enter an even number no less than 6:");
                scanf("%d",&number);
        }while((number < 6) || (number % 2 == 1));
        for(i=2;i<=number/2;i++)
                if(isPrime(i) && (isPrime(number - i)))    //i和number - i都素数
                        printf("%d = %d + %d\n",number,i,number - i);
        return 0;
}

经典程序 | 阅读 2501 次
文章评论,共0条
游客请输入验证码
浏览110997次