素数的距离问题

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

假设输入的整数本身就是素数。则输出该素数本身。距离输出0

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

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

当中A表示离对应測试数据近期的素数,B表示其间的距离。
例子输入
3
6
8
10
例子输出
5 1
7 1
11 1

JAVA代码:

/*
* 搜索最小素数距离,优先级分析:
* 1、推断输入的是否为素数,是素数输出
* 2、推断左側近期素数
* 3、推断右側近期素数
*
* 特例需注意。数字1不是素数
* */
package org.oj; import java.util.Scanner;
public class Main { //推断素数
private boolean is_prime(int x){
if(x>1){
if(x<4){ // 2,3 素数
return true;
}else{
for(int i=2;i<=Math.sqrt(x);i+=1){
if(x%i==0) return false;
}
return true;
}
} return false;
} public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
Main nyoj=new Main();
int n=scan.nextInt(); //组数
for(int i=0;i<n;i++){
int m=scan.nextInt();
if(m<0) break;
if(nyoj.is_prime(m)){
System.out.println(m+" "+0); continue;
} // 距离
int d=(m%2==0)?1:0; //特例:1 不是素数
if(m==1){
System.out.println("2 1");
}else{
while(true){
int min=m-d;
int max=m+d;
if(nyoj.is_prime(min)){
System.out.println(min+" "+d); break;
}else{
if(nyoj.is_prime(max)){
System.out.println(max+" "+d); break;
}
}
d+=2;
}
} }
scan.close();
}
}

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

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. js cookie可选参数(document.cookie='name=张三;expires='+day;)

    js cookie可选参数(document.cookie='name=张三;expires='+day;) 一.总结 1.可用secure属性来设置安全协议传输 2.expire属性用的比较多,其它 ...

  2. 得到INI文件所有Section(所有节点名称)

    char SectionNames[MAX_PATH],*pSectionName; ZeroMemory(SectionNames,MAX_PATH); GetPrivateProfileSecti ...

  3. 【3002】删去K个数字

    Time Limit: 3 second Memory Limit: 2 MB [问题描述] 输入一个数字串S和整数K(K小于数字串S的长度),从S中删去K个数字,使剩余数字在保持相对位置不变的情况下 ...

  4. thinkphp mysql 坐标按距离排序

    $cha1 = new Model(); $shops = $cha1->query("select *,(2 * 6378.137* ASIN(SQRT(POW(SIN(3.1415 ...

  5. TortoiseGit拉取或推送项目提示 HTTP Basic: Access denied fatal: Authentication failed.

      TortoiseGit拉取或推送项目提示 HTTP Basic: Access denied fatal: Authentication failed. 大体意思是,HTTP基本认证失败,访问被拒 ...

  6. 【死磕Java并发】—–J.U.C之AQS(一篇就够了)

    [隐藏目录] 1 独占式 1.1 独占式同步状态获取 1.2 独占式获取响应中断 1.3 独占式超时获取 1.4 独占式同步状态释放 2 共享式 2.1 共享式同步状态获取 2.2 共享式同步状态释放 ...

  7. ios开发事件处理之 四:hittest方法的底层实现与应用

    #import "XMGWindow.h" /** 1:注意点:hitTest方法内部会调用pointInside方法,询问触摸点是否在自己身上,当遍历子控件时,传入的坐标点要进行 ...

  8. Android NDK开发之Jni的数据类型

    在前面的一篇博客<Android NDK开发简介>,我简单地说明了Android NDK开发的流程,以及其重要的一环:JNI层得开发.今天我再详细说明一下自己的学习经验. JNI是Java ...

  9. [tmux] Create collections of panes using tmux windows

    In tmux, a window is a collection of panes. Creating multiple windows is a great way to organize you ...

  10. Android的NDK开发(5)————Android JNI层实现文件的read、write与seek操作

    1. 在Android的Java层实现文件的读写操作是非常简单的,可以参看之前写的博文:http://blog.csdn.net/conowen/article/details/7296121 在JN ...