hihoCoder #1493 : 歌德巴赫猜想

来源:互联网 发布:模型制作 软件 编辑:程序博客网 时间:2024/05/01 21:31

#1493 : 歌德巴赫猜想

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

哥德巴赫猜想认为“每一个大于2的偶数,都能表示成两个质数之和”。

给定一个大于2的偶数N,你能找到两个质数P和Q满足P<=Q并且P+Q=N吗?

输入

一个偶数N(4 <= N <= 1000000)

输出

输出P和Q。如果有多组解,输出P最小的一组。

样例输入
10
样例输出
3 7

#include <iostream>
#include <string>
#include <string.h>
#include <cmath>
using namespace std;
#define Mod 1000000007
int prim(int x)
{
    int i,j,k;
    k=sqrt(x);
    for(i=2;i<=k;i++){
        if(x%i==0){
            return 0;
            break;
        }
    }
    if(i>k) return 1;
}
int main()
{
    int n;
    while(cin>>n){
        for(int i=1;i<=n/2;i++){
            if(prim(i)&&prim(n-i)){
                cout<<i<<" "<<n-i<<endl;
                break;
            }
        }
    }
    return 0;
}