首页 > 学院 > 开发设计 > 正文

NYOJ24素数距离问题

2019-11-14 09:28:59
字体:
来源:转载
供稿:网友

素数距离问题

时间限制:3000 ms   内存限制:65535 KB难度:2描述现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。如果输入的整数本身就是素数,则输出该素数本身,距离输出0输入第一行给出测试数据组数N(0接下来的N行每行有一个整数M(0输出每行输出两个整数 A B.其中A表示离相应测试数据最近的素数,B表示其间的距离。样例输入
3 6 8 10样例输出
5 1 7 1 11 1
#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int n,i,j,ki,kj;scanf("%d",&n);  while(n--){  int x,count_i,count_j;  scanf("%d",&x);     if(x==1){        PRintf("2 1/n");        continue;     }     for(i=x,j=x;i>1&&j<2*x;i--,j++){         count_i=0;         count_j=0;         for(ki=sqrt(i);ki>0;ki--)            if(i%ki==0)  count_i++;         if(count_i==1){            printf("%d %d/n",i,abs(x-i));            break;         }         for(kj=sqrt(j);kj>0;kj--)            if(j%kj==0)  count_j++;         if(count_j==1){            printf("%d %d/n",j,abs(x-j));            break;         }     }  }return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表