メルマガ読むならアプリが便利
アプリで開く

[jwork-p] 2024-02-27 Rust で素数。今日も、コツコツ勉強しよう。

日刊プレミアム 高度をめざす情報処理技術者試験宿題
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ 高度を目指す一日一題宿題メールマガジン     .&&&& **** %%%%. ┃ ┃                         &&&&&&******%%%%%% ┃ ┃ 発行 斎藤末広 suehiro3721p@gmail.com @は半角 '&┃&''*┃*''%┃%' ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━┻━━┻━━┛ 宿題メールトラブル/問題訂正 https://twitter.com/HomeWorkMail ========================================================================  2024年2月27日  旧暦 睦月(むつき,1月) 18日  2/19 雨水(うすい) → 3/5 啓蟄(けいちつ)    強化したい分野の問題を毎日1問 挑戦しよう  このメールの下部の部分に解答欄があります。返信してください。 ====================================================================== ☆宿題メールCM 買い物・出張ホテル予約は 楽天 http://tiny.cc/r2w6wz ☆ 携帯/常時接続は、楽天モバイル(特典あり) https://r10.to/hU7pri ------------------------------------------------------------------------ [[『かんじる Rust』その3 素数を求める]]  以下は、「エラトステネスの篩(ふるい)」と言われている、素数を求める アルゴリズムを利用してます。  100 までの数字で素数を調べるとき、 要素100個の真偽値配列用意(実際は、101個) 最初は、すべて、true を入れておく 2 倍数を4からすべて false にする 3 倍数を9からすべて false にする 順に、10 の倍数までやる 100 までの数字の中で素数を調べるときは、10 の倍数までを調べたら十分です。 たとえば、99 は、3*3*11 で、3 の倍数かどうかを調べたときに素数でないことが わかります。  以下のソースの 最初の行の =|AUTO|, と最後の行の ||= は、他の wiki の 書式です。無視をしてください。 =|AUTO| // エラトステネスの篩(ふるい)の実装 fn sieve_of_eratosthenes(n: usize) -> Vec<usize> { //Vec は、変更可能配列 let mut isp = vec![true; n + 1]; //素数かどうかを保持する配列。変更可能配列初期値はtrue isp[0] = false; // 0 は、素数でないとする isp[1] = false; // 1 は、素数でないとする let rt_n = (n as f64).sqrt() as usize; // n のルートの整数化 for i in 2..= rt_n { // 2の倍数は、false, 3の倍数は、false,,,とやっていく if isp[i] { let mut j = i * i;

この続きを見るには

この記事は約 NaN 分で読めます( NaN 文字 / 画像 NaN 枚)
これはバックナンバーです
  • シェアする
まぐまぐリーダーアプリ ダウンロードはこちら
  • 330円 / 月(税込)
  • 毎週 月・火・水・木・金曜日(祝祭日・年末年始を除く)