NYoj 24 素数距离问题

来源:互联网 发布:蓝硕移动硬盘mac 编辑:程序博客网 时间:2024/06/05 10:29

素数距离问题
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
输入
第一行给出测试数据组数N(0

#include"cstdio"#include"cmath"#include"cstring"#include"algorithm"using namespace std;int f(int n){    int i;    int flag=0;    if(n<=1)    flag=1;     for(i=2;i<=sqrt(n);i++)    {        if(n%i==0)        {            flag=1;            break;        }    }    return flag;}int main(){    int n, m, i, j, k;    scanf("%d",&n);    while(n--)    {        scanf("%d",&m);        for(j=m,i=m;;)        {            if(f(j)==0)            {                printf("%d %d\n",j,m-j);                break;            }            if(f(i)==0)            {                printf("%d %d\n",i,i-m);                break;            }            else             {                j--;                i++;            }        }    }    return 0; } 
0 0