打印素數
1. 素數定義
素數(prime number)又稱質數,有無限個。
素數定義爲在大於1的自然數中,除了1和它本身以外不再有其他因數。
2.方法
- 假設 x 是素數,那麼 x 的倍數 2x,3x,4x,5x…. 將全部都是素數。依次內推,可以將所有的素數找出
- 定義一個一維數組,用於存儲素數,數組的大小爲 int [] array = new int[r+1];
- 計算的時候,需要從 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 + " ");
}
}
}