题目描述
所谓哥德巴赫猜想,就是指任何一个大于2的偶数,都可以写成两个素数的和。现在输入一个偶数,要求寻找两个素数,使其和等于该偶数。由于可能有多组素数对满足条件,所以本题要求输出两数差最小的那两个素数。
输入要求
输入一个偶整数M,M大于2。
输出要求
对于每个偶数,输出两个彼此最接近的素数,并且其和等于该偶数。(输出时两个素数小的在前,大的在后)。
输入样例
20
输出样例
7 13
#include<cstdio>
#include<cmath>
int su(int x);
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=n/2;i>=1;i--){
if(su(i)==1&&su(n-i)==1){
printf("%d %d\n",i,n-i);
break;
}
}
return 0;
}
int su(int x){//判断素数函数。
int set=0;
for(int i=2;i<x;i++){
if(x%i==0){
set=1;
return 0;
}
}
if(set==0){
return 1;
}
}