hdoj-1262-寻找素数对

Description
哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.
做好了这件实事,就能说明这个猜想是成立的.
由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.

Input
输入中是一些偶整数M(5

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;

bool judge(int x)
{
    for(int i=2;i<=sqrt(x);i++)
    {
        if(x%i==0) return false;
    }
    return true;
}

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int cnt;
        int del=100000000;
        for(int i=0;i<=n/2;i++)
        {
            if(judge(i)&&judge(n-i))
            {
                if(del>n-2*i)
                {
                    del=n-2*i;
                    cnt=i;
                }
            }
        }
        printf("%d %d\n",cnt,n-cnt);
    }
}

你可能感兴趣的:(hdoj-1262-寻找素数对)