素數個數統計
阿新 • • 發佈:2021-07-29
統計n以內的素數個數
素數:只能被1和自身整除的自然數,0、1除外
例:輸入:100
輸出:25
public class sushu { public static void main(String[] args) { System.out.println(bf(100)); System.out.println(eratosthenes(100)); } //暴力演算法 public static int bf(int n){ int count = 0; for (int i=2;i<n;i++){ count += isPrime(i)? 1 : 0; } return count; } private static boolean isPrime(int x) { for (int i=2;i*i<=x;i++){ if (x%i==0){ return false; } } return true; } //埃篩法 素數 非素數(合數) public static int eratosthenes(int n){ boolean[] isPrime = new boolean[n];//預設false:素數 int count = 0; for (int i =2;i<n;i++){ if (!isPrime[I]){ count++; for (int j=i*i;j<n;j+=i){//合數的標記微位 isPrime[j]=true; } } } return count; } }