Algorithm|素数を求めるときはエラトステネスのふるい!!


エラトステネスのふるい
素数を求めるときに使うアルゴリズムの1つです.
簡単に説明すると、全部でn個あると仮定します.
nから少数を救いたい時
n個で並べます.次の配列では、0と1は非小数として除外されます.
後2を平方根で割った場合、0の場合はtrueを返します.
Java Code
これは白準から1929号までの問題です.aとbの間の小数を求める問題.
エラトスティンのふるいを使いました.
ここで,キーはMath.sqrt平方根関数を利用するためである.
boolean配列にendsize+1を作成します.
trueではなく少数falseで少数
素数は2~8の間の非零数です
    public void solution(int a, int b) {

        boolean[] booleans = new boolean[b + 1];

        booleans[0] = booleans[1] = true;

        for (int i = 0; i < booleans.length; i++) {
            boolean booleanData = booleans[i];
            if (!booleanData) {
                for (int j = 2; j < Math.sqrt(i); j++) {
                    if (i % j == 0) booleans[i] = true;
                }
            }
        }

        for (int i = a ; i <= b ; i++){
            if (!booleans[i]){
                System.out.println(i);
            }
        }

        return;
    }