P3-統計素數個數-暴力演算法
阿新 • • 發佈:2022-04-11
//統計素數個數 //素數:只能被1和自身整除的自然數,0、1除外 public class P3 { public static void main(String[] args) { System.out.println(bf(100)); } //暴力演算法 public static int bf(int n) { int count = 0; for (int i = 2; i < n; i++) { count += isPrime(i) ? 1 : 0; }return count; } //判斷是否是素數 /* i 其實不用寫成小於 x 例如x=12時 無非就是 2*6 3*4 4*3 6*2 前後其實是相同,只是交換了的 前後兩個的臨界點就是 根號12 * 根號12 根號12約等於3.46,所以2*6 3*4 和 4*3 6*2 大概就是在3.46的位置開始對稱 只要根號x之前沒找到,後面都不會找到,不用繼續查詢 * */ private static boolean isPrime(int x) {// for (int i=2; i<x; i++){ for (int i = 2; i * i <= x; i++) { if (x % i == 0) { return false; } } return true; } }