PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 29 / a^bの個数

2 ≦ a ≦ 5 と 2 ≦ b ≦ 5について a^b をすべて考えてみよう。

22=4, 23=8, 24=16, 25=32
32=9, 33=27, 34=81, 35=243
42=16, 43=64, 44=256, 45=1024
52=25, 53=125, 54=625, 55=3125

これらを小さい順に並べて同じ数を除くと15個の項を得る。

4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125

2 ≦ a ≦ 100, 2 ≦ b ≦ 100 で同じことをするといくつの項が残るか?

Problem 29 - Project Euler

まず 2 ≦ a ≦ 5 と 2 ≦ b ≦ 5 でやってみましょう。

  1. Table で a^b のリストを作る
  2. Flatten で平滑化
  3. DeleteDuplicates で重複を除く。
  4. Length で個数を求める

同じことを 2 ≦ a ≦ 100, 2 ≦ b ≦ 100 でやります。瞬時に答えが出るとは言え,100^(100) などの大きな数をそのまま扱うのは気が引けます。