题解 | #查找组成一个偶数最接近的两个素数# C语言
查找组成一个偶数最接近的两个素数
http://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
给定的数为n,从中间的数n/2开始,依次减1,判断该数i是否为素数。同时判断n-i是否是素数。当第一次遇到两个数都为素数的情况时,这两个数即为所求数。
#include<stdio.h>
#include<math.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int k=n/2;
int flag1,flag2; //flag=1表示i或n-i为素数
for(int i=k;i>0;i--){
flag1=flag2=0;
int j;
for(j=2;j<=(int)sqrt(i);j++){ //判断i是否为素数
if(i%j==0)
break;
}
if(j>(int)sqrt(i)) //此句不能写在for循环内
flag1=1;
for(j=2;j<=(int)sqrt(n-i);j++){ //判断n-i是否为素数
if((n-i)%j==0)
break;
}
if(j>(int)sqrt(n-i))
flag2=1;
if(flag1*flag2){
printf("%d\n%d\n",i,n-i);
break;
}
}
}
return 0;
}
