PAT 乙級1007. 素數對猜想 (JAVA版)

讓我們定義 dn 爲:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認爲“存在無窮多對相鄰且差爲2的素數”。

現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。

輸入格式:每個測試輸入包含1個測試用例,給出正整數N。

輸出格式:每個測試用例的輸出佔一行,不超過N的滿足猜想的素數對的個數。

輸入樣例:
20
輸出樣例:
4

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        if (n >= 100000 || n < 1) {
            return ;
        }
        List<Integer> array = new ArrayList<Integer>();

        for (int i = 2; i <= n; i++) {
            if (judge(i)) {
                array.add(i);
            };
        }
        int count = 0;
        for (int i = 0 ,size = array.size(); i < size - 1; i++) {
            if (array.get(i+1) - array.get(i) == 2) {
                count++;
            }
        }
        System.out.println(count);
    }
    /*
     * 素數也叫質數,判斷一個數是不是質數
     * 根據這個數能否被從2開始到他的平方根的數整除,能則不是
     */
    public static boolean judge(int n){
        double a = Math.ceil(Math.sqrt(n));
        if (n == 2) {
            return true;
        }
        for (int i = 2; i <= a; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章