Chinaunix首页 | 论坛 | 博客
  • 博客访问: 845651
  • 博文数量: 321
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 936
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-23 11:25
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(10)

2015年(61)

2014年(187)

2013年(62)

分类: C/C++

2014-06-23 17:18:23

原文地址:C语言实例18:循環綜合 作者:hnrainll

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

#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;
}


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