Пожалуйста, подпишитесь на официальный канал Codeforces в Telegram по ссылке https://t.me/codeforces_official. ×

Блог пользователя SAFWAN.K

Автор SAFWAN.K, история, 9 лет назад, По-английски

Hi all how to take gcd between rational number

a/b,c/d

thank all

  • Проголосовать: нравится
  • +11
  • Проголосовать: не нравится

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +16 Проголосовать: не нравится

in python you can do

from fractions import *
print gcd(Fraction(9,13), Fraction(6,13))
»
9 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

You can calculate it using integer gcd: gcd(a * d, b * c) / (b * d). Don't forget about possible integer overflow.

»
9 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Something like this? (C++)

double fgcd(double x, double y) {
  if (fabs(y) <= EPS) return x;
  return fgcd(y, fmod(y, x));
}