题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
#include <stdio.h> int main() { int n; int a,i,j,flag,min; int x[1000]={0}; int y[1000]={0}; int top; int pos; a=2; flag=0; top=0; pos=0; min=0; while(scanf("%d",&n)==1) { while(a<n) { i=2; //求素数 while(i<a) { if(a%i==0) { flag=1; break; } i++; } //将素数存入数组 if(flag==0) { x[top++]=a; } flag=0; a++; } //将相加等于n的素数组存放 for(j=0;j<top;j++) { for(i=j;i<top;i++) { if(x[j]+x[i]==n) { y[pos++]=x[j]; y[pos++]=x[i]; } } } j=0; min=1000; //输出差值最小的素数对 while(j<pos-1) { if(y[j+1]-y[j]<min) { min=y[j+1]-y[j]; } j+=2; } i=0; while(i<pos-1) { if(y[i+1]-y[i]==min) { printf("%d\n%d",y[i],y[i+1]); } i+=2; } } return 0; }