素数距离问题

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 2
 
描述
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0

 
输入
第一行给出测试数据组数N(0<N<=10000)

接下来的N行每行有一个整数M(0<M<1000000),
输出
每行输出两个整数 A B.

其中A表示离相应测试数据最近的素数,B表示其间的距离。
样例输入
  1. 3
  2. 6
  3. 8
  4. 10
样例输出
  1. 5 1
  2. 7 1
  3. 11 1
来源
经典题目
上传者
hzyqazasdf

  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3.  
  4. public class Main{
  5. public static void main(String[] args) {
  6. BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
  7. try {
  8. int N=Integer.parseInt(bf.readLine());
  9. while(N-->0){
  10. int m=Integer.parseInt(bf.readLine());
  11. if(m<2)
  12. {
  13. System.out.println(2+" "+(2-m));
  14. continue;
  15. }
  16. int i=0;
  17. for(i=2;i*i<=m;i++){
  18. if(m%i==0)
  19. break;
  20. }
  21. if(i*i>m){
  22. System.out.println(m+" "+"0");
  23. continue;
  24. }
  25. int left=-20;
  26. for(i=m-1;i>=2;i--){
  27. int j=0;
  28. for(j=2;j*j<=i;j++)
  29. if(i%j==0)
  30. break;
  31. if(j*j>i){
  32. left=i;
  33. break;
  34. }
  35. }
  36. int right=0;
  37. for(i=m+1;;i++){
  38. int j=0;
  39. for(j=2;j*j<=i;j++)
  40. if(i%j==0)
  41. break;
  42. if(j*j>i){
  43. right=i;
  44. break;
  45. }
  46. }
  47. System.out.println((m-left>right-m?(right+" "+(right-m)):(left+" "+(m-left))));
  48. }
  49. } catch (Exception e) {
  50. e.printStackTrace();
  51. }
  52. }
  53. }

素数距离问题_ny_24.java的更多相关文章

  1. nyoj 24 素数距离问题

    素数距离问题 时间限制:3000 ms  |            内存限制:65535 KB 难度:2   描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度. ...

  2. ny24 素数距离的问题 筛选法求素数

    素数距离问题时间限制:3000 ms  |  内存限制:65535 KB难度:2 描述    现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度素 ...

  3. nyoj 素数距离

    素数距离问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度 ...

  4. 水题(素数表)NYOJ素数距离

                描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度素数,则输出左侧的值及相应距离. 如果输入的整数本身就是素数,则输 ...

  5. ZJNU 1223 - 素数距离——高级

    因为最大可以达到int极限 明显直接筛选不可能完成 所以从其因子入手 因为任何不是素数的数都有除了1与其自身之外的因子 因此,我们筛出2^(31/2)≍46350之内的所有素数,以其作为因子再将题目给 ...

  6. 根据两点经纬度计算距离和角度——java实现

    原理:见上一篇博客   http://blog.csdn.net/xiaobai091220106/article/details/50879365 百度地图拾取经纬度坐标:http://api.ma ...

  7. NYOJ 24 素数的距离问题

    素数的距离问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描写叙述 如今给出你一些数.要求你写出一个程序,输出这些整数相邻近期的素数,并输出其相距长度.假设左右有等距离长 ...

  8. [Java文件操作] 将素数输出到文件

    [要求]编写程序求出10万以内的所有素数,并将这些素数输出到一个文本文件中,每行文本只包含一个素数数据. import java.util.*; import java.io.*; public cl ...

  9. 6、50道JAVA基础编程练习题跟答案

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...

随机推荐

  1. win8 VS2010 配制OpenGL

    glut下载地址: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut.h  ---> C:\Progr ...

  2. Asp.Net MVC4配置Ext.Net

    首先,下载MVC用的DLL包(Ext.NET.MVC.Pro.2.2.0.zip).讲DLL文件拷贝到工程bin目录下,引用进工程. 第二步,配置Views文件夹下的web.config文件(具体文字 ...

  3. docker 运行挂载磁盘

    docker:/data# mkdir /awp docker:/data# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAM ...

  4. setTimeout()与setInterval() 问题

    提示:setTimeout() 只执行 code 一次.如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout(). 1. setInterval(c ...

  5. poj3077---进位

    #include <stdio.h> #include <stdlib.h> #include<string.h> ]; ]; int main() { int n ...

  6. Design Pattern Iterator 迭代器设计模式

    这个设计模式感觉很easy,我们平时敲代码的时候也是常常须要调用iterator的,C++和Java都是. 所以感觉没什么特别的.就是须要模仿C++或者Java的iterator类的功能吧. 这里简单 ...

  7. hdu 2054 A == B ? (java)

    问题: 考虑问题不周到.没有考虑到可能是小数并且存在 1.0=1.01=1的情况. 本题使用了BigDecimal类,此类适用于高精度的数此时攻克了小数和01=1的问题, 该类比較方式中n.equal ...

  8. Haffman算法(C++)

    Huffman编码,C++实现,只是为了说明大致的思路,还有很多不完美之处,比如在输入数据超出限制等条件下会出现错误. #include<iostream> #include<str ...

  9. Java学习笔记---继承和super的用法

    自从换了个视频教学,感觉比原来那个好多了,就是学校网速太渣,好多视频看一会卡半天,只能先看看已经下载的了. 不过也好,虽然不能从开始开始重新开,但是已经看过一次,在看一次也是好的,就当巩固学习了. 继 ...

  10. ASP.NET动态引用WebService接口

    尊重原著作:本文转载自http://www.mhzg.net/a/20124/20124912180589.html 有经验的朋友都知道,通常我们在引用webservice的时候,是在项目中就添加了引 ...