LoginSignup
2
2

More than 5 years have passed since last update.

Project Euler Q33 【桁消去分数】

Last updated at Posted at 2017-12-05

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

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