Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1589162
  • 博文数量: 354
  • 博客积分: 8137
  • 博客等级: 中将
  • 技术积分: 5137
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-26 15:40
文章分类

全部博文(354)

文章存档

2010年(300)

2009年(54)

分类: C/C++

2010-06-20 23:44:03

/************
哥德巴求赫猜想:任一充分大的偶数,可以用两个素数之和表示。
*************/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
    int i, j, num;
    int p, q, flagp,flagq;
    printf("Please input a plus integer:");
    scanf("%d", &num);

    if(((num%2) != 0) || (num <= 4)) //這裡說明我們的數據一定要是偶數,並大於4.

        printf("Input data error!\n");
    else
    {
        p = 1;

        do{
            p = p + 1;
            q = num -p;
            flagp = 1;
            flagq = 1;
            for(i = 2; i <= (int)(floor(sqrt((double)(p)))); i++)
            {
                if((p % i) == 0)
                {
                    flagp = 0;
                    break;
                }
            }

            j = 2;
            while(j <= (int)(floor(sqrt((double)(q)))))
            {
                if((q%j) == 0)
                {
                    flagq = 0;
                    break;
                }
                j++;
            }

        }
        while(flagp*flagq == 0);
        printf("%d = %d + %d \n", num, p ,q);
    }
    system("pause");
    return 0;
}


阅读(1393) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~