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

問題

$\frac{49}{98}$は面白い分数である.「分子と分母からそれぞれ$9$を取り除くと, $\frac{49}{98} = \frac{4}{8}$ となり, 簡単な形にすることができる」と経験の浅い数学者が誤って思い込んでしまうかもしれないからである. (方法は正しくないが,$\frac{49}{98}$の場合にはたまたま正しい約分になってしまう.)

我々は $\frac{30}{50} = \frac{3}{5}$ のようなタイプは自明な例だとする.

このような分数のうち, $1$より小さく分子・分母がともに2桁の数になるような自明でないものは, $4$個ある.

その$4$個の分数の積が約分された形で与えられたとき, 分母の値を答えよ.

解答

seq 12 98 |
awk '{for(i=10;i<$1;i++){if($1%11!=0&&i%11!=0){print i,$1}}}' |
awk '{for(i=1;i<=10;i++){printf $0" "};print ""}' |
awk '{for(i=1;i<=9;i++){gsub(i,"",$(2*i+1));gsub(i,"",$(2*(i+1)));print $1,$2,$(2*i+1),$(2*(i+1))}}' |
awk '$1$2!=$3$4&&$4!=0&&int($3/$4)==0' |
awk '$1==$3*$2/$4' |
awk 'BEGIN{a=1;b=1}{a*=$3;b*=$4}END{print a,b}' |
awk '{a=$1;b=$2;for(i=$1;2<=i;i--){if(a%i==0&&b%i==0){a/=i;b/=i}};print b}'
100

ちなみに対象の$4$つは、
$\frac{16}{64}$、$\frac{26}{65}$、$\frac{19}{95}$、$\frac{49}{98}$です。

※2018/01/22修正
最後の出力が答えだけになるように修正

答え合わせ

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

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.