素數——求正整數 l - r 中素數的個數

打印素數

1. 素數定義

素數(prime number)又稱質數,有無限個。

素數定義爲在大於1的自然數中,除了1和它本身以外不再有其他因數。

2.方法

  1. 假設 x 是素數,那麼 x 的倍數 2x,3x,4x,5x…. 將全部都是素數。依次內推,可以將所有的素數找出
  2. 定義一個一維數組,用於存儲素數,數組的大小爲 int [] array = new int[r+1];
  3. 計算的時候,需要從 2 開始計算,不論 左邊邊界 l 是多少,都需要從 2 開始計算,並且 數組的長度始終爲 r+1

3. 代碼

package Interview;

import java.util.*;

public class test {

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        //輸入 l 和 r,查找這個範圍內所有的素數
        int l = sc.nextInt();
        int r = sc.nextInt();
        int [] array = new int[r+1];
        array[0] = 1; // 0 不爲素數
        for(int i=2;i<=r;i++){
            if(array[i] == 0){//如果一個數不爲素數,那麼它的倍數一定是素數,把他們全部置爲1
                for (int j= i+i;j<=r;j+=i){
                    array[j] = 1;
                }
            }
        }
        for (int i=l;i<array.length;i++){ //打印數組中元素爲 1 的元素,從 l 開始
            if (array[i] == 0)
                System.out.println(i + " ");
        }
    }

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