NYOJ24素数距离问题

    xiaoxiao2021-03-26  20

    素数距离问题

    时间限制: 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; }
    转载请注明原文地址: https://ju.6miu.com/read-659958.html

    最新回复(0)