プロジェクトオイラー4.

この記事の所要時間: 156

No.4 Largest palindrome product

問題.

Q. 回文数(palindrome number) とは, 左右どちらから読んでも同じになる数です. (例えば, 12021 や, 148841)

2桁の数2つの積として表される最大の回文数は, 9009=91\times 99 です.

3桁の数2つの積として表される最大の回文数はいくらか.

考え方とプログラム例(Python)

1. 3桁の数の積のうち, 回文数になっているものを探す

2つの3桁の数を p, q\quad(100\leqq p\leqq q<1000) として, その積 pq が回文数になっているかを調べ, 積が最大となるものを出力します.

3.64\times 10^{-1} 秒で計算できました.

2. 6桁の回文数のうち, 3桁の数の積で書けるものを探す

3桁の数2つの積は5桁または6桁です.

(最小で100\times 100=10000, 最大で999\times 999 < 1000\times1000=1000000.)

最大のものを求めればよいので, 6桁の回文数を考えます.

6桁の回文数は, 1桁の数 a, b, c\quad (a\neq0) を使って, “abccba” の形で書けるので, それが3桁の数の積になっているかを調べます.

a, b, c の値を減らしていくループを使うことで, はじめに3桁の数の積で書けるものが最大になり, そこで計算を終了できます. なので, 1. の方法よりも計算時間は早くなります.

計算時間は 1.90\times 10^{-2} 秒でした.

答えはこの下の行にあります. 反転してください.

A. 906609=913*993

スポンサーリンク
sub2
sub2
  • このエントリーをはてなブックマークに追加