広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 67 / 68

素因数分解しよう

このレッスンでは、Goで素因数分解を行う方法を学び、繰り返し処理を使った数論アルゴリズムの実装を理解することを目標にします。「Go言語 素因数分解 実装」で調べている方向けです。

素因数分解とは、ある数を素数の掛け算で表すことです。2から順に割り切れるか試し、割り切れたらその数で割り続ける、という手順で求められます。

サンプルコードでは、d := 2から始めて、ndで割り切れる限りfactors = append(factors, d)で結果に追加しながらn /= dで割り続け、割り切れなくなったらdを1つ増やすという処理を、nが1になるまで繰り返しています。

初心者がよくつまずくのが、二重ループの構造です。外側のループで割る数dを増やしながら、内側のループで割り切れる限り割り続けるという、2段階の繰り返しの組み合わせが理解のポイントになります。

暗号技術(RSA暗号など)の安全性の根拠にもなっている、数学とコンピュータサイエンスの両方にまたがる重要な考え方です。1という数はどんな数でも割り切れてしまうため、素因数分解の対象からは除外して考える必要があります。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
入力された数を素因数分解するツールが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)