LoginSignup
2
2

More than 5 years have passed since last update.

Project Euler Q38 【パンデジタル倍数】

Posted at

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

問題

$192$ に $1, 2, 3$ を掛けてみよう.
$192 × 1 = 192$
$192 × 2 = 384$
$192 × 3 = 576$

積を連結することで$1$から$9$の パンデジタル数 $192384576$ が得られる. $192384576$ を $192$ と $(1,2,3)$ の連結積と呼ぶ.

同じようにして, $9$ を $1,2,3,4,5$ と掛け連結することでパンデジタル数 $918273645$ が得られる. これは $9$ と $(1,2,3,4,5)$ との連結積である.

整数と $(1,2,...,n) (n > 1)$ との連結積として得られる$9$桁のパンデジタル数の中で最大のものはいくつか?

解答

整数が$5$桁の場合は$9$桁のパンデジタル数を得られない。よって、整数は最大でも$4$桁。
かつ結果がパンデジタルなので、整数は最大でも$9876$である。

seq 9876 |
awk '{L=0;i=1;while(L<9){printf $1*i" ";L+=length($1*i);i++};print ""}' |
grep -v "0" |
tr -d ' ' |
awk 'length($1)==9' |
awk -v FS= '{for(i=1;i<=NF;i++){a[NR,$i]+=1};printf $0" ";for(i=1;i<=9;i++){printf a[NR,i]};print ""}' |
awk 'length($1)==length($2){print $1}' |
sort -n |
tail -1
932718654

答え合わせ

こちらのサイト様と一致していればOKとした。
http://kingyojima.net/pje/038.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