PAT 乙級 1007. 素數對猜想 (20)
阿新 • • 發佈:2019-01-04
import java.util.ArrayList; import java.util.List; import java.util.Scanner; /* 1007. 素數對猜想 (20) 讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。 輸入格式:每個測試輸入包含1個測試用例,給出正整數N。 輸出格式:每個測試用例的輸出佔一行,不超過N的滿足猜想的素數對的個數。 輸入樣例: 20 輸出樣例: 4 */ public class Main { private static int num; private static int count; private static List<Integer> primeList = new ArrayList<>(); public static void main(String[] args) { Scanner scan = new Scanner(System.in); num = scan.nextInt(); scan.close(); // 迴圈查詢素數 for (int i = 2; i <= num; i++) { if (isPrime(i)) { primeList.add(i); } } for (int i = 1; i < primeList.size(); i++) { if (primeList.get(i) - primeList.get(i - 1) == 2) { count++; } } System.out.println(count); } private static boolean isPrime(int n) { for (int i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) { return false; } } return true; } }