素数距离问题
来源:互联网 发布:linux snmptrap接收 编辑:程序博客网 时间:2024/06/08 00:26
题目:
素数距离问题
时间限制:3000 ms | 内存限制:65535 KB
难度:2
- 描述
- 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0- 输入
- 第一行给出测试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000), - 输出
- 每行输出两个整数 A B.
其中A表示离相应测试数据最近的素数,B表示其间的距离。 - 样例输入
36810
- 样例输出
5 17 111 1
个人理解:用埃氏筛法 加上临界情况的判断:
关于埃氏筛法链接:快速埃氏筛法
AC情况:
代码C语言:
# include <stdio.h> # include <math.h># define N 1000015 char A[N]; # define AA(i,j,A,Q) for(A[0]=A[1]=1,i=2;i<Q;i++)if(!A[i])for(j=i<<1;j<N;j+=i)A[j]=1; int i,j,k,T,sum,Q=sqrt(N)+1; int main(){ AA(i,j,A,Q); //freopen("SAS.txt","r",stdin); scanf("%d",&T); while(T--){ k=j=0; scanf("%d",&i); if(A[i]) { while(A[i+(++j)]);//右走 while((i-k)&&A[i-(++k)]);//左走 } if(j<k||i<2) printf("%d %d\n",i+j,j);//把i的最左侧的情况考虑在内 else printf("%d %d\n",i-k,k); } return 0; }
阅读全文
1 0
- 素数距离问题
- NYOJ - 素数距离问题
- 素数距离问题
- NYOJ24-素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- 【素数距离问题 24】
- 素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- nyoj24素数距离问题
- nyoj24 素数距离问题
- NYOJ24 素数距离问题
- 素数距离问题
- 素数距离问题
- 素数距离问题
- 数据结构笔记
- JOSN传递对象数据类型的原理
- D
- java浮点运算的陷阱
- 00、react.js之 用法心得
- 素数距离问题
- 用ASP.NET Web API技术开发HTTP接口(二)
- 编程常用缩写
- hightCharts 跳转页面接改为弹窗图形设置效果!
- java自学-数组
- 一维数组,字符数组,字符串,二维数组在sizeof()和strlen()下的不同输出
- RecyclerView添加Header和Footer
- SYN攻击的基本原理、工具及检测方法
- C语言——实例033 gotoxy()与clrscr()函数