题解 | #查找组成一个偶数最接近的两个素数# 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; }