素数距离问题
来源:互联网 发布:做吉他谱的软件 编辑:程序博客网 时间:2024/06/08 03:24
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
输入
接下来的N行每行有一个整数M(0<M<1000000),
输出
其中A表示离相应测试数据最近的素数,B表示其间的距离。
样例输入
36810
样例输出
5 17 111 1依次从一个数开始往两边查找,第一个数为素数或者小与2结束查找,查找完毕比较距离就行了此外还需要考虑左边没有素数的情况
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int f(int n){
int i;
if(n==1) return 0;
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
return 0;
break;
}
}
return 1;
}
int main()
{
int n,num,numUp,numDown,deltUp,deltDown;
scanf("%d",&n);
while(n--)
{
scanf("%d",&num);
if(f(num))//本身是素数,后面就不用了
printf("%d 0\n",num);
else
{
numUp=numDown=num;
while(!f(numUp))
{
numUp+=1;
}
while(!f(numDown)&&numDown>0)//边界条件,否则不能通过
{
numDown-=1;
}
deltUp = numUp-num;
deltDown = num-numDown;
if(numDown==0)//特殊情况:左边没有找到
printf("%d %d\n",numUp,deltUp);
else if(deltUp>=deltDown)//输出距离小的, 相等则左
printf("%d %d\n",numDown,deltDown);
else
printf("%d %d\n",numUp,deltUp);
}
}
//system("PAUSE");
return 0;
}
- 素数距离问题
- NYOJ - 素数距离问题
- 素数距离问题
- NYOJ24-素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- 【素数距离问题 24】
- 素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- nyoj24素数距离问题
- nyoj24 素数距离问题
- NYOJ24 素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- opencv中对Mat类型图像感兴趣(ROI)轮廓外接矩形并截取保存结果
- 制作mac os Sierra 系统盘
- Hive2.0.0安装配置
- TCP的三次握手和四次挥手详解
- Hibernate配置
- 素数距离问题
- Java中的方法重载与重写
- python笔记之面向对象
- Sorting It All Out 拓扑
- 函数的调用过程—栈帧
- Redis数据结构和对象(三)
- VS“新建网站”与“新建Asp.Net Web 应用程序”的区别
- 1619-7 张良 十一月二十六号总结 [连续第五十七天]
- Codeforces(738D)-D. Sea Battle