您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言哥德巴赫猜想

时间:12-13来源:作者:点击数:

“这是我和其他选手比谁过题过得更快的游戏”

对于任何大于或等于4的偶数n,存在至少一对素数p1和p2,使得n = p1 + p2

没有人确定这个猜想是否真的成立。然而,对于给定的偶数,可以找到这样的一对素数(如果有的话)。这里的问题是编写一个程序,打印出满足给定偶数的猜想条件的所有素数对数。

一个偶数序列作为输入。可以有很多这样的数字。对应于每个数字,程序应输出上述对的数量。请注意,我们只统计不同的数对,因此不应将(p1,p2)和(p2,p1)分别计为两对不同的对。

输入格式:

在每个输入行中给出一个整数。你可以假定每个整数是偶数,并且大于或等于4且小于2的15次方。输入的结尾用数字0表示。

输出格式:

每个输出行应该包含一个整数。输出中不应出现其他字符。

输入样例:

在这里给出一组输入。例如:

6

10

12

0

输出样例:

在这里给出相应的输出。例如:

1

2

1


#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int Judge(int x)
{
    int flag = 1, sum = 0;
    for (int i = 2; i <=x / 2; i++)
    {
        for (int j = 2; j < i; j++)
        {
            flag = 1;
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag)
        {
            for (int j = 2; j <= (x - i)/j; j++)
            {
                if ((x - i) % j == 0)
                {
                    flag = 0;
                    break;
                }
            }
        }
        if (flag)
        {
            sum++;
        }
    }
    return sum;
}

int main()
{
    int tmp;
    while (1)
    {
        scanf("%d", &tmp);
        if (tmp)
            printf("%d\n", Judge(tmp));
        else
            break;
    }
    return 0;
}
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐