NYOJ-24-素数距离问题
2016-01-29 16:11
169 查看
素数距离问题
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
输入
第一行给出测试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000),
输出
每行输出两个整数 A B.
其中A表示离相应测试数据最近的素数,B表示其间的距离。
样例输入
3
6
8
10
样例输出
5 1
7 1
11 1
关于素数的问题,筛法打表最实用了
素数筛法:/article/3652832.html
坑点很多
m输入上限是一百万,但是最终输出素数有可能大于一百万,所以打表时上限很坑。
m输入下限是1,而1既不是素数也不是合数,而打表时1会被识别为合数,所以当m为1时,应该输出的素数是2,而距离为1
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
输入
第一行给出测试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000),
输出
每行输出两个整数 A B.
其中A表示离相应测试数据最近的素数,B表示其间的距离。
样例输入
3
6
8
10
样例输出
5 1
7 1
11 1
关于素数的问题,筛法打表最实用了
素数筛法:/article/3652832.html
坑点很多
m输入上限是一百万,但是最终输出素数有可能大于一百万,所以打表时上限很坑。
m输入下限是1,而1既不是素数也不是合数,而打表时1会被识别为合数,所以当m为1时,应该输出的素数是2,而距离为1
[code]#include<stdio.h> #include<string.h> #include<math.h> #define N 2000000 int a ; void sushu()//筛法打表 { memset(a,1,sizeof(a));//全部标记为1 a[1]=0;//1既不是素数也不是合数 for(int i=2; i<sqrt(N); i++) if(a[i])//如果i是素数 for(int j=2; i*j<=N; j++) a[i*j]=0;//那么i*j肯定为合数,就把a[i*j]标记为0 } int main() { sushu();//引入素数表 int x; scanf("%d",&x); while(x--)//n组数据 { int m; scanf("%d",&m); if(m==1)//m=1的特殊情况 { printf("2 1\n"); continue;//输出后不再执行下面的语句 } if(a[m])//m自己是素数的情况 { printf("%d 0\n",m); continue; } int left=m;//标记左右 int right=m; int distance=0;//距离 while(left)//只要左边没到0就进入循环 { distance++;//每次进入循环距离+1 left--; if(a[left])//如果左边是素数了,就输出并终止循环,同时也符合优先判断左边的题意 { printf("%d %d\n",left,distance); break; } right++; if(a[right])//如果右边是素数 { printf("%d %d\n",right,distance); break; } } } return 0; }
相关文章推荐
- Android:inputType参数类型说明
- Android Learning:数据存储方案归纳与总结
- opencv - haar人脸特征的训练
- linux网络编程实例
- 找到多个与名为“Login”的控制器匹配的类型
- Winform应用程序实现通用消息窗口
- Android-开发工具及测试工具
- 【MySQL】性能优化之 index merge (1)
- Spring bean的生命周期
- 音乐播放器APK之MediaPlayer使用指南
- Codeforces Round #330 (Div. 1) A. Warrior and Archer
- android的窗口机制分析------事件处理
- iOS微信第三方登录实现
- Mybatis传多个参数(三种解决方案)
- C++11 线程池
- Python + Paramiko实现sftp文件上传下载
- IOS 使用IJKPlayer时进行Options设置方法
- 关于TouchEvent中MessageQueue-JNI问题
- DP:如何从125个数中找出21个数使其等于固定值
- 测试中常用的小脚本