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