解释:输入一个值,求出该值距离最近素数的距离。
#include <iostream>
using namespace std;int sushu(int val)//判断是否为素数
{
int i=2;
for(i=2;i<val;i++)
{
if(val%i==0)
{
return -2;//非素数
}
}
if(i>=val)
{
return -1;//素数
}
}
int main()
{
int N,M;
cin>>M;//循环次数
while(M--)
{
cin>>N;//求N的素数距离
int zero=0,var=1;
int jud=0;
jud=sushu(N);
if(jud==-1)//是素数,输出距离为0
{
cout<<N<<" "<<zero<<endl;
}
else
{
while(1)//查找最近的素数
{
jud=sushu(N-var);//前面是否有素数
if(jud==-1)
{
cout<<N-var<<" "<<var<<endl;
break;
}
else
{
jud=sushu(N+var);//后面是否有素数
if(jud==-1)
{
cout<<N+var<<" "<<var<<endl;
break;
}
}
var++;//距离加1
}
}
}
return 0;
}