素数距离问题
时间限制:3000 ms | 内存限制:65535 KB 难度:2-
描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
-
输入第一行给出测试数据组数N(0
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