#include <stdio.h>
#include <math.h>
int fun(int n);
int left(int n);
int right(int n);
int main()
{
int m,n,a=0,x,y;
scanf("%d",&m);
while(m--){
scanf("%d",&n);
x=left(n);
y=right(n);
if(n==1)
printf("%d %d\n",n+1,a+1);
else if(fun(n)==1)
printf("%d %d\n",n,a);
else if(x<=y)
printf("%d %d\n",n-x,x);
else
printf("%d %d\n",n+y,y);
}
return 0;
}
int fun(int n){
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
break;
if(i>sqrt(n)&&n!=1)
return 1;
else
return 0;
}
int left(int n)//左距离
{
int a=0;
while(fun(n)!=1)
{
n--;
a++;
}
return a;
}
int right(int n)//右距离
{
int a=0;
while(fun(n)!=1)
{
n++;
a++;
}
return a;
}
//AC
nyoj24 素数距离
最新推荐文章于 2018-07-31 16:32:45 发布