広告スペース(バナー)
💎Ruby レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 67 / 68
素因数分解しよう
このレッスンでは、ある数を素数の掛け算で表す素因数分解のアルゴリズムを学び、数学とプログラミングのつながりを体験することを目標にします。「Ruby 素因数分解」で検索している方向けです。
素因数分解とは、ある数を素数の掛け算で表すことです。2から順に割り切れるか試し、割り切れたらその数で割り続ける、という手順で求められます。
サンプルコードでは、dという変数を2から順に増やしながら、nを割り切れる限り割り続けています。factors << dという書き方で配列に要素を追加している点も、Rubyらしい簡潔な記法です。
初心者がよくつまずくのが、内側と外側、2つのループの役割の違いです。内側のループは「同じ数で何回割り切れるか」を、外側のループ(while)は「次に試す数へ進める」役割を持っています。この2段階の構造を理解すると、アルゴリズム全体の流れが見えてきます。
暗号技術(RSA暗号など)の安全性の根拠にもなっている、数学とコンピュータサイエンスの両方にまたがる考え方です。1という数はどんな数でも割り切れてしまうため、素因数分解の対象からは除外して考える必要があります。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではRubyを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
入力された数を素因数分解するツールが作れるようになります。
入力された数を素因数分解するツールが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)