素数的距离问题

时间限制: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. swift项目第三天:手写代码搭建主框架

    一:先配置环境:自定义Log输出(DEBUG 和 release模式),并屏蔽后台多余的打印信息 1:屏蔽后台多余的打印信息:如果写了OS_ACTIVITY_MODE = disable 还是不行.把 ...

  2. Oracle 11gR2 静默安装奇怪错误

    在静默安装Oracle 11gR2 的时候发现的奇怪错误,有点摸不着头脑 【步骤一】配置静默文件只安装软件 #--------------------------------------------- ...

  3. 基于Android Fragment功能的样例

    通过近期空暇时候对Fragment的学习,尝试着写了一个小Demo,将在开发的时候能经常使用到的Fragment知识放在一起,写过了这个Demo对Android Fragment的了解更加深入了,以后 ...

  4. Linux system函数返回值

    例: status = system("./test.sh"); 1.先统一两个说法: (1)system返回值:指调用system函数后的返回值,比如上例中status为syst ...

  5. Netty+WebSocket简单实现网页聊天

    基于Netty+WebSocket的网页聊天简单实现 一.pom依赖 <dependency>        <groupId>io.netty</groupId> ...

  6. 翻译 | Qt研发副总裁分享2018年工作计划

    原文作者:TuukkaTurunen,高级研发副总裁 翻译校审:Haipeng.Yulong和Ryan 引言:2018年,我们将继续完善Qt 5.9 LTS,现在我们正在为5月份发布Qt 5.11进行 ...

  7. pandas 学习(五)—— datetime(日期)

    date range pd.date_range('2014-11-19', '2014-11-21', freq='D') # 起始时间,终止时间,时间间隔,也即步长,D ⇒ Day,5H:以 5 ...

  8. USB 3.0规范中译本 第4章 超高速数据流模型

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章展示数据和信息如何在超高速上通过的一种高层次的描述.请阅读协议层一章关于低层次协议的细节.本章提供设备架 ...

  9. cocos2d-x win8下的环境配置和建立项目

    cocos2dx 跨平台.可是看网上说开发最合适还是在vs2010中,基本是编完后再移植到安卓. 1.去官网下载源代码2.2.3版本号的. 2.然后运行根文件夹下的build-win32.bat(须要 ...

  10. 【codeforces 758C】Unfair Poll

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...