PAT 1007 素數對猜想 (20分) java題解

題目地址在此

在這裏插入圖片描述
輸入格式:

輸入在一行給出正整數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訂正
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章