题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
http://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
#include<stdio.h>
int main(){
int n=0,i,j,left,right,count=0;
int su_left[100]={0},su_right[100]={0},cha[100]={0};
scanf("%d",&n);
//找组成偶数的2个素数(有很多种情况)
for(left=2;left<=n/2;left++){ //判断左加数是不是素数
for(i=2;i<left;i++){
if(left%i==0) //左加数是素数就停止
break;
}
if(i==left){ //左加数是素数
right=n-left;
for(j=2;j<right;j++){ //判断右加数是不是素数
if(right%j==0) //右加数是素数就停止
break;
}
if(j==right){ //右加数是素数
su_left[count]=left;
su_right[count]=right;
cha[count]=right-left;
count++;
}
}
}
//找最小差值对应的两个素数
int min=cha[0],pos=0;
for(i=1;i<count;i++){
if(cha[i]<min){
min=cha[i];
pos=i;
}
}
//输出
printf("%d\n%d",su_left[pos],su_right[pos]);
}