0923 - Fractii Max

From Bitnami MediaWiki
Revision as of 15:53, 29 October 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == Cerinţa == Se dau '''4''' numere naturale '''a b c d''', reprezentând fracţiile '''a/b''' şi '''c/d'''. Determinați și afișați cea mai mare dintre cele două fracții. == Date de intrare == Programul citește de la tastatură numerele '''a b c d'''. == Date de ieşire == Programul afișează pe ecran numerele '''m n''', separate prin exact un spațiu, reprezentând numărătorul şi numitorul fracției maxime, adusă la forma ireductibilă. == Restricții și preci...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se dau 4 numere naturale a b c d, reprezentând fracţiile a/b şi c/d. Determinați și afișați cea mai mare dintre cele două fracții.

Date de intrare

Programul citește de la tastatură numerele a b c d.

Date de ieşire

Programul afișează pe ecran numerele m n, separate prin exact un spațiu, reprezentând numărătorul şi numitorul fracției maxime, adusă la forma ireductibilă.

Restricții și precizări

  • 1 ⩽ a, b, c, d ⩽ 10000

Exemplu

Intrare
7 14 24 18
Ieșire
4 3

Explicație

Fracția maximă este 24/18. Prin simplificare devine 4/3.

Rezolvare

<syntaxhighlight lang="python" line>

  1. Definim funcția

def frac_max(x, y):

   while(y):
       x, y = y, x % y
   return x
  1. Introducem valorile

a = int(input()) b = int(input()) c = int(input()) d = int(input())

  1. Calculăm valoarea fracțiilor

frac1 = a / b frac2 = c / d

  1. Verificăm care fracție este mai mare și o simplificăm

if frac1 > frac2:

   frac_max_val = frac_max(a, b)
   print(a // frac_max_val, b // frac_max_val)

else:

   frac_max_val = frac_max(c, d)
   print(c // frac_max_val, d // frac_max_val)

</syntaxhighlight>