Algorithm|素数を求めるときはエラトステネスのふるい!!
エラトステネスのふるい
素数を求めるときに使うアルゴリズムの1つです.
簡単に説明すると、全部でn個あると仮定します.
nから少数を救いたい時
n個で並べます.次の配列では、0と1は非小数として除外されます.
後2を平方根で割った場合、0の場合はtrueを返します.
Java Code
これは白準から1929号までの問題です.aとbの間の小数を求める問題.
エラトスティンのふるいを使いました.
ここで,キーは
boolean配列にendsize+1を作成します.
trueではなく少数falseで少数
素数は2~8の間の非零数です
素数を求めるときに使うアルゴリズムの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;
}
Reference
この問題について(Algorithm|素数を求めるときはエラトステネスのふるい!!), 我々は、より多くの情報をここで見つけました https://velog.io/@ewan/알고리즘에라토스테네스의-체テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol