如果输入的整数本身就是素数,则输出该素数本身,距离输出0
思考:关键点(1)循环给出这些数字输入
(2)判断素数
(3)if判断两点距离
代码
#include<stdio.h>
#include<math.h>
int isprime(int n)
{
int i,k=(int)sqrt(1.0*n);
for(i=2;i<=k;i++)
if(n%i==0) return 0;
return 1;
}
void main()
{
int i,j,n,m,min[10000],mindiff[10000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&m);
min[i]=0;
for(j=m;j>=0;j--)
if(isprime(j)) break;
min[i]=j;
mindiff[i]=m-min[i];
for(j=m;1;j++)
if(isprime(j)) break;
if(mindiff[i]>j-m) {
mindiff[i]=j-m;
min[i]=j;
}
}
for(i=0;i<n;i++)
printf("%d %d\n",min[i],mindiff[i]);
}
2065302 | zhandoudeiji | 素数距离问题 | ![]() | 208 | 240 | C/C++ | 06-22 18:43:01 |