素数距离问题(nyoj24)
来源:互联网 发布:sqlserver 默认值约束 编辑:程序博客网 时间:2024/06/07 19:35
素数距离问题
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
- 输入
- 第一行给出测试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000), - 输出
- 每行输出两个整数 A B.
其中A表示离相应测试数据最近的素数,B表示其间的距离。 - 样例输入
36810
- 样例输出
5 17 111 1
- 来源
- 经典题目
- #include<stdio.h>
- #include<string.h>
- #include<math.h>
- #define MAX 1000010
- int prime[MAX];
- //素数表
- void Prime(){
- memset(prime,0,sizeof(prime));
- for(int i = 2;i < sqrt(MAX)+1;i++){
- if(prime[i]){
- continue;
- }
- else{
- for(int j = i*i;j < MAX;j += i){
- prime[j] = 1;
- }
- }
- }
- }
- int main()
- {
- int N,M,LIndex,RIndex;
- //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
- Prime();
- prime[1] = 1;
- prime[0] = 1;
- scanf("%d",&N);
- //N组测试数据
- while(N--){
- scanf("%d",&M);
- if(prime[M] == 0){
- printf("%d 0\n",M);
- }
- else{
- RIndex = M;
- LIndex = M;
- //寻找左边素数
- while(prime[LIndex] == 1 && LIndex >= 0){
- LIndex --;
- }
- //寻找右边素数
- while(prime[RIndex] == 1){
- RIndex ++;
- }
- //左边没有找到
- if(LIndex < 0){
- printf("%d %d\n",RIndex,RIndex-M);
- }
- //左右都有
- else if(M - LIndex <= RIndex - M){
- printf("%d %d\n",LIndex,M-LIndex);
- }
- else{
- printf("%d %d\n",RIndex,RIndex-M);
- }
- }
- }
- return 0;
- }
0 0
- NYOJ24-素数距离问题
- nyoj24素数距离问题
- nyoj24 素数距离问题
- NYOJ24 素数距离问题
- NYOJ24 素数距离问题
- NYOJ24---素数距离问题
- nyoj24素数距离问题
- 素数距离问题(nyoj24)
- NYOJ24素数距离问题
- nyoj24 素数距离
- 素数距离问题
- NYOJ - 素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- 【素数距离问题 24】
- 素数距离问题
- 提高第27课时,实践3,项目3-数组的排序
- matlab对音频均匀量化
- 关于python IDE中中文报错的解决办法
- VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
- 写个较通用的32位apihook函数 免得每次都重写
- 素数距离问题(nyoj24)
- java过滤器和监听器详解
- openframeworks的阅读及总结(1)
- 洛阳治疗早泄哪家医院好呢~~
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Android 联系人按中文拼音排序
- 百度地图 demo 在html中显示 在jsp中不显示
- linux配置Jexus发布asp.net网站
- UI Automation for IOS及Crash .dSYM 文件的解析。