輸入格式:
輸入在一行給出正整數N。
輸出格式:
在一行中輸出不超過N的滿足猜想的素數對的個數。
輸入樣例:
20
輸出樣例:
4
思路:先求出從1到N中所有的素數,將其存放在s_num數組中,再遍歷數組,求出前後兩個素數相減差爲2個數的個數。
有錯誤:一處,不知道錯在哪裏,有看到的大佬希望可以評論說明一下,謝謝啦。
代碼:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] s_num = new int[N];
boolean sign ;
int s = 0;
for(int i=2;i<N;i++){
if(i%2==0&&i!=2) continue;
sign = true;
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j==0){
sign = false;
break;
}
}
if(sign){
s_num[s] = i;
s++;
}
} //把素數放進s_num
int sum = 0;
for(int i=0;i<s_num.length-1;i++){
if(s_num[i+1]-s_num[i]==2){
sum++;
}
}
System.out.print(sum);
}
}
附運行截圖:
—————————————分割線————————————————
5.13訂正