题目描述
著名的数学家哥德巴赫说:任意不小于6的偶数必定可分解成两个素数之和,例如10=3+7。
请编写一个程序,对于输入的任意正偶数(不大于100000),将其分解成两个质数的和形式。
如果有多种解,输出第一个加数最小的那个解。
输入格式
一个正偶数N(不大于100000)。
输出格式
两个质数,它的和为N。
样例数据
input
10
output
3 7
数据规模与约定
时间限制:1s
空间限制:256MB
#include<bits/stdc++.h>
using namespace std;
int f(int n)
{
bool flag=1;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
return flag;
}
int main()
{
int n;
cin>>n;
for(int i=2;i<=n/2;i++)
{
if(f(i)==1&&f(n-i)==1)
{
cout<<i<<" "<<n-i;
break;
}
}
return 0;
}