Help us understand the problem. What is going on with this article?

Project Euler Q34 【桁の階乗】

More than 3 years have passed since last update.

Project Eulerをワンライナーで解いてみる。
間違っていたらコメントください。

問題

$145$は面白い数である. $1! + 4! + 5! = 1 + 24 + 120 = 145$となる.

各桁の数の階乗の和が自分自身と一致するような数の和を求めよ.

注: $1! = 1$ と $2! = 2$ は総和に含めてはならない.

解答

n>=7で10**n -1 > 9!*nなので、最高でも9!*7までの範囲を検索すれば十分である。

引用元:Project Euler 34 - Qiita

いつもこの辺の「どこまでやれば十分なのか」がよく分からない。
$999999 < 9! * 6 = 2177280$、$9999999 > 9! * 7 = 2540160$なので、
$2540160$までやれば十分か。

seq 3 2540160 |
awk -v FS= '{printf $0" ";s=0;for(i=1;i<=NF;i++){x=1;for(j=1;j<=$i;j++){x*=j};s+=x};print s}' |
awk '$1==$2{s+=$1}END{print s}'
40730

答え合わせ

こちらのサイト様と一致していればOKとした。
http://kingyojima.net/pje/034.html

tea63
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away