プログラミングのお題スレ Part22 (831レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
742: デフォルトの名無しさん [sage] 2025/04/09(水) 22:57:11.84 ID:R3DmBa+t >>741 すみません 素数の一覧を返すだけなので素数列挙でもライブラリ利用でも何でもいいのですが 例えばエラトステネスの篩ならこんな感じの関数で // 素数の一覧を返す [2, 3, 5, 7, 11, ... , (最大max)] fn generate_primes(max: usize) -> Vec<usize> { // maxの平方根までの素数の倍数を篩にかければ全ての素数が見つかる let limit = max.isqrt() + 1; let mut is_prime = vec![true; max + 1]; is_prime[0] = false; is_prime[1] = false; // 偽初期値 let mut prime = 1; // 次の素数を探す (前回の素数以降でtrueを探すと次の素数) while let Some(pos) = is_prime[(prime + 1)..limit].iter().position(|bool| *bool) { prime += pos + 1; // この素数の倍数をfalseにする 【エラトステネスの篩】 is_prime[(prime << 1)..].iter_mut().step_by(prime).for_each(|bool| *bool = false); } // 素数一覧を返す (trueになるindex値が素数) is_prime.iter().enumerate().filter_map(|(index, bool)| bool.then_some(index)).collect() } http://mevius.5ch.net/test/read.cgi/tech/1691038333/742
744: デフォルトの名無しさん [sage] 2025/04/09(水) 23:43:56.02 ID:R3DmBa+t 前者はどっち? アルゴリズムが違うのかちょっと見てみる http://mevius.5ch.net/test/read.cgi/tech/1691038333/744
746: デフォルトの名無しさん [sage] 2025/04/09(水) 23:59:16.31 ID:R3DmBa+t たしかにC++の20億だと数秒かかりますね 何がそんなに違うのかな http://mevius.5ch.net/test/read.cgi/tech/1691038333/746
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s