素数距离问题

来源:互联网 发布:淘宝著作权侵权扣几分 编辑:程序博客网 时间:2024/06/07 23:43
int is_prime(int n)
{
  int i;
  if(n<=1)return 0;
  for(i=2;i*i<=n;i++)
  if(n%i==0)return 0;
  return 1;
}
#include<stdio.h>
int main()
{
  int m,n;
  scanf("%d",&m);
  for(int i=1;i<=m;i++)
  {
    scanf("%d",&n);
    if(is_prime(n))
    {printf("%d %d\n",n,0);continue;}
    for(int i=1;n-i!=-1;i++)
    {
      if(is_prime(n-i))
      {printf("%d %d\n",n-i,i);break;}
      if(is_prime(n+i))
      {printf("%d %d\n",n+i,i);break;}
    }
  }
}