标签:blog os ar java for 数据 sp div 2014
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();
}
}
标签:blog os ar java for 数据 sp div 2014
原文地址:http://blog.csdn.net/user_longling/article/details/39672815