JavaLog

プログラミング初心者向けの小ネタ集

【Java8】2~Nまでに含まれる素数

エラストテネスの振るい

public class Main {
    public static void main(String[] args) {
        
        //2~N(100)までに含まれる素数
        int N = 100;
        boolean[] prime = new boolean[N+1];//0~Nまで
        
        for(int i=2; i<=Math.sqrt(N); i++) {
            if(!prime[i]) {
                for(int j=i+i; j<=N; j+=i) {
                    prime[j] = true;
                }
            }
        }
        
        for(int i=2; i<=N; i++) {
            if(!prime[i]) {
                System.out.print(i + " ");
            }
        }
    }
}
実行結果

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97