LoginSignup
2
2

More than 5 years have passed since last update.

Project Euler Q34 【桁の階乗】

Posted at

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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2