【leetcode】計数質量-エラトストニふるい法
984 ワード
関連資料及び注意事項:私のLeetCode解題集GitHubアドレス 私信または伝言交流を歓迎します!
アルゴリズムの紹介
自然数n以内のすべての素数を得るには,ルートnより大きくないすべての素数の倍数を取り除かなければならず,残りは素数である.
アルゴリズムプロセスまず、すべてTrueとしてマークされたブールテーブルarrを確立し、その後、除去を開始する. は、2からnの開方内の素数を計算するだけでよい. arrタグが素数である場合、除去が開始される. jの開始点はi*iであり、 は、対応する数字が1以上の正の整数であるためarr[j-1]をマークすればよい.同理前判断のa[i-1]. サイクルが完了すると、残りはTrueと表記された素数となる.
心得をまとめる
すばらしいですね.すばらしいですね.
アルゴリズムの紹介
自然数n以内のすべての素数を得るには,ルートnより大きくないすべての素数の倍数を取り除かなければならず,残りは素数である.
アルゴリズムプロセス
for (int i = 0; i < n; i++) {
arr[i] = true;
}
arr[0] = false;
int count = 0;
int limit = (int) Math.sqrt(n);
//
for (int i = 2; i <= limit; i++) {
if (arr[i - 1]) {
//
for (int j = i * i; j < n; j += i) {
arr[j - 1] = false;
}
}
}
i*1 ——> i * (i -1)
は以前の(i-1)*i
サイクルで除去されたためである.心得をまとめる
すばらしいですね.すばらしいですね.