素数的距离问题

时间限制: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

JAVA代码:

  1. /*
  2. * 搜索最小素数距离,优先级分析:
  3. * 1、推断输入的是否为素数,是素数输出
  4. * 2、推断左側近期素数
  5. * 3、推断右側近期素数
  6. *
  7. * 特例需注意。数字1不是素数
  8. * */
  9. package org.oj;
  10.  
  11. import java.util.Scanner;
  12. public class Main {
  13.  
  14. //推断素数
  15. private boolean is_prime(int x){
  16. if(x>1){
  17. if(x<4){ // 2,3 素数
  18. return true;
  19. }else{
  20. for(int i=2;i<=Math.sqrt(x);i+=1){
  21. if(x%i==0) return false;
  22. }
  23. return true;
  24. }
  25. }
  26.  
  27. return false;
  28. }
  29.  
  30. public static void main(String[] args) {
  31. Scanner scan=new Scanner(System.in);
  32. Main nyoj=new Main();
  33. int n=scan.nextInt(); //组数
  34. for(int i=0;i<n;i++){
  35. int m=scan.nextInt();
  36. if(m<0) break;
  37. if(nyoj.is_prime(m)){
  38. System.out.println(m+" "+0); continue;
  39. }
  40.  
  41. // 距离
  42. int d=(m%2==0)?1:0;
  43.  
  44. //特例:1 不是素数
  45. if(m==1){
  46. System.out.println("2 1");
  47. }else{
  48. while(true){
  49. int min=m-d;
  50. int max=m+d;
  51. if(nyoj.is_prime(min)){
  52. System.out.println(min+" "+d); break;
  53. }else{
  54. if(nyoj.is_prime(max)){
  55. System.out.println(max+" "+d); break;
  56. }
  57. }
  58. d+=2;
  59. }
  60. }
  61.  
  62. }
  63. scan.close();
  64. }
  65. }

版权声明:本文博主原创文章,博客,未经同意不得转载。

NYOJ 24 素数的距离问题的更多相关文章

  1. nyoj 24 素数距离问题

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

  2. nyoj 24

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

  3. NYOJ题目889求距离

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsYAAAJ2CAIAAADTwNOXAAAgAElEQVR4nO3dPVLrSteG4W8S5B4IsQ

  4. NYOJ之素数求和问题

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsoAAAKCCAIAAABH/2gWAAAgAElEQVR4nO3dPVLjStsG4G8T5CyEdF

  5. NYOJ题目101两点距离

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsEAAAIBCAIAAAAnO/WXAAAgAElEQVR4nO3dq3IbSeM34L0Jc/O9BW

  6. POJ 2689 Prime Distance (素数筛选法,大区间筛选)

    题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...

  7. POJ2689-Prime Distance-区间筛素数

    最近改自己的错误代码改到要上天,心累. 这是迄今为止写的最心累的博客. Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  8. 大区间素数筛选(POJ 2689)

    /* *POJ 2689 Prime Distance *给出一个区间[L,U],找出区间内容.相邻的距离最近的两个素数和距离最远的两个素数 *1<=L<U<=2147483647 ...

  9. POJ 2689 筛法求素数

    DES:给出一个区间[L, U].找出这个区间内相邻的距离最近的两个素数和距离最远的两个素数.其中1<=L<U<=2147483647 区间长度不超过1000000. 思路:因为给出 ...

随机推荐

  1. MySQL之SQL mode——检查官

    原文:MySQL之SQL mode--检查官 MySQL升级后代码出bug? 前段时间,测试的MySQL服务器进行了一次升级,从MySQL5.6升级到了MySQL5.7.以为是简单的升级,不会影响到代 ...

  2. [RxJS] Implement pause and resume feature correctly through RxJS

    Eventually you will feel the need for pausing the observation of an Observable and resuming it later ...

  3. error C2220: warning treated as error - no 'object' file generated warning C4819: The file contains a character that cannot be represented in the current code page (936).

    用Visual Studio2015 编译时,遇到如下编译错误: error C2220: warning treated as error - no 'object' file generated ...

  4. php 小程序获取渠道二维码 保存

    function ppost($url,$arr){ $post_data = json_encode($arr); $url=$url; $ch = curl_init(); curl_setopt ...

  5. iOS 【UIKit-UIPageControl利用delegate定位圆点位置 之 四舍五入小技巧】

    在UIScrollView中会加入UIPageControl作为页码标识,能够让用户清楚的知道当前的页数.我们须要优化的一点是让pageControl的小圆点精确的跟着scrollView而定位.我们 ...

  6. IOS开发核心动画六:动画组

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  7. jquery-10 js加载的时机如何选择

    jquery-10 js加载的时机如何选择 一.总结 一句话总结:主要应用widow的ready()方法和load()方法. 1.内部文件中DOM加载完毕执行js如何书写? 把js标签放在body之后 ...

  8. android 发送http请求

    好久没写博客了,由于公司要做android,笔者也是第一次接触. 这是在项目中遇到一个比較麻烦的问题.记录下来备忘(本人刚接触.有不正确的地方请不吝赐教). 发送请求的代码: package com. ...

  9. [Angular] Subscribing to router events

    In our root component, one thing we can do is subscribe to Router events, and do something related t ...

  10. warning C4996: 'fopen': This function or variable may be unsafe.(_CRT_SECURE_NO_WARNINGS)

    在 windows 平台下的 visual studio IDE,使用 fopen 等 CRT 函数(C runtime library(part of the C standard library) ...