プログラミングコンテストでは、分数を分数のまま出力させる場合が、たまにあります。
その際に、約分ができるのであれば、約分した形での出力が求められることがほとんどです。

 また、この機能の使い所として、
少数となる計算結果の比較が必要となる問題などで、
無理に割り算を行うと、少数の精度がうまくとれず、誤った解答となる場合があります。そんな場合に、今回ご紹介する方法では、割り切れない分数はそのまま保持しますので、うまくその精度問題を回避できることがあります。decimalモジュールを使用するような問題の場合ですね。

以下に、python3分数を約分した形で出力する方法を紹介します。



Fraction(numerator, denominator)

 特に難しいことはなく、 fractionsモジュール を用いて Fraction(numerator, denominator) としてやれば、約分された分数を得ることができます。
ここで引数については、
numerator分母
denominator分子 となります。

import文、from fractions import Fraction が必要ですのでご注意下さい。
また、最終的に分母が 1 となる場合は、分子のみが出力されるようです。

以下に、コードの例を示します。

from fractions import Fraction
#(1) 約分できる場合
my_numerator = 2
my_denominator = 6
print(Fraction(my_numerator,my_denominator))
# --> 1/3

#(2)約分できない場合
my_numerator = 5
my_denominator = 26
print(Fraction(my_numerator,my_denominator))
# --> 5/26

#(3)そもそも割り切れる場合
my_numerator = 100
my_denominator = 25
print(Fraction(my_numerator,my_denominator))
# --> 4