共計 1571 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹“Eratosthenes 篩選求質數的方法是什么”,在日常操作中,相信很多人在 Eratosthenes 篩選求質數的方法是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Eratosthenes 篩選求質數的方法是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
import java.util.Scanner;
public class Eratosthenes { static void getPrimes(int num){ int []arr = new int[num +1];// 長度為 11 的數組, 能夠存下表為 0 -10 的數組, 所以取 10 以內的數組, 需要申請 11 長度的數組
for (int i = 1; i = num; i++){ arr[i] = i;
}
arr[1] = 0;// 1 不是素數, 排除 1
for (int i = 2; i Math.sqrt(num); i++){ for (int j = i+1; j num; j++){ if (arr[j] != 0 arr[j]%i == 0){ arr[j] = 0;
}
}
}
for (int i = 0; i num; i++){ if (arr[i] != 0){ System.out.printf(arr[i]+ \t
}
}
}
public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.printf( 請輸入查詢值:
int num = scanner.nextInt();
getPrimes(num);
static boolean isCheck(int x){ for (int i = 2; i x; i++){// for (int i = 2; i = Math.sqrt(x); i++){ if (x % 2 == 0){
return false;
}
}
return true;
}
public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
System.out.println(isCheck(x));
}
* 2 是素數,1 不是素數
*
* 排除異常樹
* if(n 2) return false;
*
* 偶數一定不適素數
* if(n%2==0) return false;
*
* 定理: 如果 n 不是素數, 則 n 有滿足 1 d =sqrt(n) 的一個因子 d.
證明: 如果 n 不是素數, 則由定義 n 有一個因子 d 滿足 1 d n.
如果 d 大于 sqrt(n), 則 n / d 是滿足 1 n/d =sqrt(n) 的一個因子.
sqrt() 是開方, 開方的兩個數是相等的,4*4=14, 如果一個數大約平方根, 那么另一個數一定小于平方根, 才能滿足二者的乘積等于兩個平方根的積
素數,又稱質數,在一個大于 1 的自然數中,除了 1 和此整數自身之外,不能被其他自然數整除的數。 比 1 大但不是素數的數稱為合數。 1 和 0 既不是素數,也不是合數。 算術基本定理證明每個大于 1 的正整數都可以寫成素數的乘積,并且這種乘積的形式是唯一的。
*/
到此,關于“Eratosthenes 篩選求質數的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!
正文完