讓我們定義 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;
}
}