素数距离题目
来源:互联网 发布:mac xlsx文件怎么打开 编辑:程序博客网 时间:2024/06/14 06:07
好久没有刷题了,于是去南阳理工的oj上从刷入门题,练练手,题目如下:
素数距离问题
时间限制: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 <math.h>int isprime(int n){int flag = 0;for(int j = 2; j <= sqrt(n); j++){if(n % j == 0)flag = 1;}return flag;}int main(){int N, M, L1, L2=2, f1, f2;scanf("%d",&N);while(N--){scanf("%d",&M);if(M ==1 ){printf("%d %d\n", 2, 1);continue;}for(int i = M; i > 1; i--){if(isprime(i) == 0){L1 = i;break; }}for(int j = M; ; j++){if(isprime(j) == 0){L2 = j;break; }}if(M-L1 > L2-M)printf("%d %d\n", L2, L2-M);elseprintf("%d %d\n", L1, M-L1);}return 0;}一定要注意输入1的时候,特殊处理 ,这道题通过只有24%,搞不好,很多人就是第一次忘记对1的处理。我也看过该题的最优代码,能写出最优代码的人是对for循环理解的相当透彻的,for(int i=M;isprime(i);i++)for(int j=M;isprime(M);j--).
0 0
- 素数距离题目
- 题目24: 素数距离问题
- 题目24-素数距离问题
- 题目24 素数距离问题
- 题目24-素数距离问题
- nyoj题目24:素数距离问题
- 南阳oj 题目24 素数距离问题
- 南阳题目24-素数距离问题
- 水题-NYOJ题目24素数距离问题
- 南阳OJ 题目24:素数距离问题
- nyist-基础语言-题目24(素数距离问题)
- NYOJ 题目24素数距离问题(水题)
- 南阳理工ACM 题目24 素数距离问题
- 素数距离
- 素数距离
- 素数距离
- 素数距离
- 素数距离
- Moving Average of An Input Stream
- 设计模式之责任链模式
- JSP续
- Status Bar变换
- 28 字符串的排列
- 素数距离题目
- ccv的安装以及测试
- JavaScript中注册时间处理程序的方式
- iOS实现水波纹
- HDU 4730-We Love MOE Girls
- 百度编辑器上传大容量视频报HTTP错误
- docker最初版本源码分析
- Eclipse运行时概述一
- Android -- 获取系统当前时间