NYOJ 24 素数距离问题
生活随笔
收集整理的這篇文章主要介紹了
NYOJ 24 素数距离问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
素數距離問題
時間限制:3000 ms ?|? 內存限制:65535 KB 難度:2 描述如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0 輸入
接下來的N行每行有一個整數M(0<M<1000000),
其中A表示離相應測試數據最近的素數,B表示其間的距離。
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 素数距离问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML元素显示与隐藏
- 下一篇: 刺身多少钱啊?