时间限制: 3000 ms | 内存限制: 65535 KB
难度: 2
- 描写叙述
- 如今给出你一些数。要求你写出一个程序,输出这些整数相邻近期的素数,并输出其相距长度。假设左右有等距离长度素数,则输出左側的值及对应距离。 假设输入的整数本身就是素数。则输出该素数本身。距离输出0
- 输入
- 第一行给出測试数据组数N(0<N<=10000) 接下来的N行每行有一个整数M(0<M<1000000)。 输出
- 每行输出两个整数 A B. 当中A表示离对应測试数据近期的素数,B表示其间的距离。 例子输入
-
36810
例子输出 -
5 17 111 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
版权声明:本文博主原创文章,博客,未经同意不得转载。