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