标签:
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(); } }
版权声明:本文博主原创文章,博客,未经同意不得转载。
标签:
原文地址:http://www.cnblogs.com/gcczhongduan/p/4791001.html