NYOJ 24 素数的距离问题
素数的距离问题
- 描写叙述
- 如今给出你一些数。要求你写出一个程序,输出这些整数相邻近期的素数,并输出其相距长度。假设左右有等距离长度素数,则输出左側的值及对应距离。
假设输入的整数本身就是素数。则输出该素数本身。距离输出0- 输入
- 第一行给出測试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000)。 - 输出
- 每行输出两个整数 A B.
当中A表示离对应測试数据近期的素数,B表示其间的距离。 - 例子输入
-
- 3
- 6
- 8
- 10
- 3
- 例子输出
-
- 5 1
- 7 1
- 11 1
- 5 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. 思路:因为给出 ...
随机推荐
- MySQL之SQL mode——检查官
原文:MySQL之SQL mode--检查官 MySQL升级后代码出bug? 前段时间,测试的MySQL服务器进行了一次升级,从MySQL5.6升级到了MySQL5.7.以为是简单的升级,不会影响到代 ...
- [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 ...
- 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 ...
- php 小程序获取渠道二维码 保存
function ppost($url,$arr){ $post_data = json_encode($arr); $url=$url; $ch = curl_init(); curl_setopt ...
- iOS 【UIKit-UIPageControl利用delegate定位圆点位置 之 四舍五入小技巧】
在UIScrollView中会加入UIPageControl作为页码标识,能够让用户清楚的知道当前的页数.我们须要优化的一点是让pageControl的小圆点精确的跟着scrollView而定位.我们 ...
- IOS开发核心动画六:动画组
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...
- jquery-10 js加载的时机如何选择
jquery-10 js加载的时机如何选择 一.总结 一句话总结:主要应用widow的ready()方法和load()方法. 1.内部文件中DOM加载完毕执行js如何书写? 把js标签放在body之后 ...
- android 发送http请求
好久没写博客了,由于公司要做android,笔者也是第一次接触. 这是在项目中遇到一个比較麻烦的问题.记录下来备忘(本人刚接触.有不正确的地方请不吝赐教). 发送请求的代码: package com. ...
- [Angular] Subscribing to router events
In our root component, one thing we can do is subscribe to Router events, and do something related t ...
- 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) ...