判斷素數,並輸出多少以內的所有素數

介紹:

判斷一個數是否爲素數,並輸出多少以內的素數。

思路:

1.素數就是大於1的,並且只能被1和自己本身整除的數叫素數。

2.那麼只需要從2循環到10就可以了。

上代碼:

package 初級;

import java.util.Scanner;

public class 判斷素數 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("請輸入你要判斷的數:");
        int num = input.nextInt();
        System.out.println(num+"是否爲素數:"+judge(num));
        System.out.println("請輸入輸出多少以內的素數:");
        int len = input.nextInt();
        for(int i=0;i<len;i++){
            if(judge(i)){
                System.out.print(i+",");
            }
        }
    }
    private static boolean judge(int n){
        if(n<=3){
            return n>1;
        }
        for(int i=2;i<10;i++){
            if(n%i == 0 && n!=i){
                return false;
            }
        }
        return true;
    }
}

可能有人會問?爲什麼從2-10,爲啥不是從2-n呢?

因爲:如果一個數能夠被其他數整除的話,那麼肯定是可以被2-10以內的數整除的。所以只需要判斷能否被2-10之間的數整除就行了,不需要再一直循環到n.這樣的話,這個算法的時間複雜度就是O(1),是常數級。

我也查了網上的求多少以內素數的算法,可是沒看到和我一樣的,我個人覺得自己的邏輯是對的,不知道哪裏有錯誤。希望大家指教。提點一二。謝謝

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