はじめに
【Project Euler】とは、プログラミングで解く数学の問題集です。
本投稿では初学者なりに、Problem3 を解くにあたっての考え方を解説しています。
ちなみに言語はRubyを用いています。
※本投稿は、Project Eulerのガイドラインに従い、解答例としてのコードは載せておりません。
また、問題に関しては私が翻訳しています。ミスがあればご指摘ください。
【Project Euler】について知りたい方はこちらから↓
問題(original ver.)
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
問題(翻訳ver.)
13195の素因数は5,7,13,29である。
600851475143の素因数で最大のものを求めよ。
問題を解く上でのヒント
①まず600851475143の素因数を求めることを考えます。
素因数に関してrubyではPrimeクラスという便利なものがあります。
はじめにrequireでモジュールをインポートするだけで使えます。
②primeをインポートしたら実際に素因数をもとめます。
素因数分解には、prime_divisionメソッドを用いると良いです。
使い方は割愛します。
③正しく実行すると、[[素因数,n乗],[素因数,n乗]...]
といった形で値が出力されます。あとは、それぞれの素因数同士で大きさを比べるだけで解けます。
おわりに
今回は【Project Euler】の問題3を解く上での考え方、流れを解説してきました。
Primeクラスが便利すぎて、知ってさえいれば一瞬で解けてしまいます。
この問題を通してまた一つ知識・技術を学べました。
このほかにも多くの問題が存在しているので、気になる方は最下部のリンクから挑戦して見てください。
また今後、私自身その他の問題にも挑戦し、同じような備忘録を投稿していきます。
私の備忘録が少しでも皆さんの参考になれば幸いです。ありがとうございました❗
P.S. 問題を閲覧するにはアカウント登録が必要です。↑