読者です 読者をやめる 読者になる 読者になる

PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 92 / 桁の2乗による連鎖

各桁の2乗を足しあわせて新たな数を作ることを, 同じ数があらわれるまで繰り返す。たとえば次のような列を作る。

  • 44 → 32 → 13 → 10 → 1 → 1
  • 85 → 89 → 145 → 42 → 20 → 4 → 16 → 37 → 58 → 89

どちらも1か89で無限ループにおちいっている。驚くことに, どの数からはじめても最終的に1か89に到達する。

10,000,000より小さい数で89に到達する数はいくつあるか。

Problem 92 - Project Euler


「ある条件をみたすまで操作 f を繰り返す」は NestWhile[ ] でできます。また,途中経過は NestWhileList[ ] で見られます。44でためしてみましょう。


NestWhile[ ] の結果が89になるものを数えておしまい。