NYOJ 24 素数距离问题
来源:互联网 发布:centos 7 更改ftp目录 编辑:程序博客网 时间:2024/06/06 07:08
素数距离问题(GO QUESTION)
时间限制: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情况===============================*//*题目网址:/*时间:/*心得: */#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#define MYDD 1000005int isss[MYDD];void init() {memset(isss,1,sizeof(isss));isss[0]=isss[1]=0;isss[2]=1;for(int j=2; j<MYDD; j++) {if(isss[j]) {for(int i=j*2; i<MYDD; i=i+j)isss[i]=0;}}}int main() {int N,M,A,B,j,k;int zuo,you;scanf("%d",&N);init();while(N--) {scanf("%d",&M);if(isss[M])printf("%d 0\n",M);else {for(j=M+1; j<MYDD; j++) {//向数轴右边寻找下一个素数if(isss[j]) {you=j-M;break;}}for(k=M-1; k>=2; k--) {//向数轴左边寻找上一个素数if(isss[k]) {zuo=M-k;break;}}if(zuo>you) {A=j;B=you;} else {A=k;B=zuo;}printf("%d %d\n",A,B);}}return 0;}
0 0
- NYOJ 24 素数距离问题
- NYOJ 24-素数距离问题
- NYOJ 24 素数距离问题
- NYOJ-24-素数距离问题
- NYOJ 24 素数距离问题
- nyoj 24 素数距离问题
- Nyoj 24 素数距离问题
- nyoj 24 素数距离问题
- nyoj 24 素数距离问题
- NYOJ 24 素数距离问题
- nyoj-24-素数距离问题
- NYOJ 24 素数距离问题
- NYOJ 24 素数距离问题
- NYOJ 24 素数距离问题
- NYOJ 24 素数距离问题
- NYOJ--24素数距离问题
- nyoj 24 素数距离问题
- NYOJ 24 素数距离问题
- Devstack 多节点自动化部署
- GSON的使用介绍
- APP开发实战97-Android异常处理
- TI 实时操作系统SYS/BIOS使用总结
- 发送短信
- NYOJ 24 素数距离问题
- 7.15 ~ 7.17 GDOI训练总结
- The requested resource (/) is not available
- 机器学习(二):基本概念
- APP开发实战98-Android异常处理注意事项
- fibonacci 通项式
- Devstack 配置文件说明手册
- JDK的命令行工具
- android学习步骤