NYOJ 24 素数的距离问题
素数的距离问题
- 描写叙述
- 如今给出你一些数。要求你写出一个程序,输出这些整数相邻近期的素数,并输出其相距长度。假设左右有等距离长度素数,则输出左側的值及对应距离。
假设输入的整数本身就是素数。则输出该素数本身。距离输出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 素数的距离问题的更多相关文章
- nyoj 24 素数距离问题
素数距离问题 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度. ...
- nyoj 24
素数距离问题 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度 ...
- NYOJ题目889求距离
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsYAAAJ2CAIAAADTwNOXAAAgAElEQVR4nO3dPVLrSteG4W8S5B4IsQ
- NYOJ之素数求和问题
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsoAAAKCCAIAAABH/2gWAAAgAElEQVR4nO3dPVLjStsG4G8T5CyEdF
- NYOJ题目101两点距离
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsEAAAIBCAIAAAAnO/WXAAAgAElEQVR4nO3dq3IbSeM34L0Jc/O9BW
- POJ 2689 Prime Distance (素数筛选法,大区间筛选)
题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...
- POJ2689-Prime Distance-区间筛素数
最近改自己的错误代码改到要上天,心累. 这是迄今为止写的最心累的博客. Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total S ...
- 大区间素数筛选(POJ 2689)
/* *POJ 2689 Prime Distance *给出一个区间[L,U],找出区间内容.相邻的距离最近的两个素数和距离最远的两个素数 *1<=L<U<=2147483647 ...
- POJ 2689 筛法求素数
DES:给出一个区间[L, U].找出这个区间内相邻的距离最近的两个素数和距离最远的两个素数.其中1<=L<U<=2147483647 区间长度不超过1000000. 思路:因为给出 ...
随机推荐
- css3-12 transform:scale(1.2,1.2)实现移入元素变大特效
css3-12 transform:scale(1.2,1.2)实现移入元素变大特效 一.总结 一句话总结:transform:scale(1.2,1.2)鼠标移入的时候变大一点点,超出边框的部分隐藏 ...
- HINTERNET应包含的头文件
#include <afxinet.h> DWORD status=0;DWORD dwLen=sizeof(DWORD); if(!HttpQueryInfo(hRequest,HTTP ...
- ArcSDE:C#打开SDE数据库的几种方式总结
转自原文 ArcSDE:C#打开SDE数据库的几种方式总结 1.通过指定连接属性参数打开数据库 /// <param name="server">数据库服务器名< ...
- 简要分析unity3d中剪不断理还乱的yield
在学习unity3d的时候非常easy看到以下这个样例: void Start () { StartCoroutine(Destroy()); } IEnumerator Destroy(){ yie ...
- 《SPA设计与架构》之JavaScript模块化
原文 简书原文:https://www.jianshu.com/p/d5fc38506bc4 大纲 1.什么是模块? 2.基本的模块模式 3.模块模式概念 4.模块结构 5.揭示模式 6.模块编程的意 ...
- Vue.js如何划分组件
常见的一些页面,大家坐在一起敲代码就可以了,做完这个页面再做别的页面,但是作为一个功能复杂的系统,尤其是使用一些适合模块化开发的框架,这样会显得效率很低,那么我们就单纯的看在Vue里面如何划分组件的. ...
- Win10安装后必做的优化,解决磁盘100%占用
Win10安装后必做的优化,解决磁盘100%占用 01关闭家庭组 控制面板–管理工具–服务– HomeGroup Listener和HomeGroup Provider禁用. 02关闭磁盘碎片整理.自 ...
- Android 圆角ListView
方法一:定义 <?xml version ="1.0" encoding ="UTF-8" ?> <shape xmlns:android = ...
- html js 上传图片 预览
第一段代码是我自己修改之后能够多选显示多预览图,也就是加了个循环,后面的代码是一些解释说明之类的,抄的 <!DOCTYPE html> <html> <head> ...
- 安装alien,DEB与RPM互换
http://blog.csdn.net/sidely/article/details/40181653