首页 > 代码库 > 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。 如果输入的整数本身就是素数,则输出该素数本身,
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。 如果输入的整数本身就是素数,则输出该素数本身,
#include<stdio.h>
#include<math.h>
int judge(int n)
{
int i,k;
for(i=2,k=1;i<=sqrt(n);i++)
if(n%i==0)
{
k=0;
break;
}
return k;
}
int main()
{
int N,M,i,a,b; scanf("%d",&N);
while(N--)
{
scanf("%d",&M);
if(M==1)
printf("2 1\n");
else if(M==2)
printf("2 0\n");
else {
for(i=M;M>=1;i--)
if(judge(i))
{
a=i;
break;
}
for(i=M+1;;i++)
if(judge(i))
{
b=i;
break;
}
if((M-a)>(b-M))
printf("%d %d\n",b,b-M);
else
printf("%d %d\n",a,M-a);
}
}
return 0;
}
#include<math.h>
int judge(int n)
{
int i,k;
for(i=2,k=1;i<=sqrt(n);i++)
if(n%i==0)
{
k=0;
break;
}
return k;
}
int main()
{
int N,M,i,a,b; scanf("%d",&N);
while(N--)
{
scanf("%d",&M);
if(M==1)
printf("2 1\n");
else if(M==2)
printf("2 0\n");
else {
for(i=M;M>=1;i--)
if(judge(i))
{
a=i;
break;
}
for(i=M+1;;i++)
if(judge(i))
{
b=i;
break;
}
if((M-a)>(b-M))
printf("%d %d\n",b,b-M);
else
printf("%d %d\n",a,M-a);
}
}
return 0;
}
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。 如果输入的整数本身就是素数,则输出该素数本身,
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。