0058 - CMMDC: Difference between revisions
Robert Manc (talk | contribs) Pagină nouă: == Cerinţa == Să se scrie un program care să determine cel mai mare divizor comun a două numere naturale citite de la tastatură. == Date de intrare == Programul citește de la tastatură două numere naturale '''numar1''' și '''numar2'''. == Date de ieşire == Programul afișează pe ecran numărul '''cmmdc''', cel mai mare divizor comun al numerelor '''numar1''' și '''numar2'''. == Restricții și precizări == * numar1, numar2 ∈ Ν * 0 ⩽ numar1, numar2 &le... |
Robert Manc (talk | contribs) No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* numar1, numar2 ∈ Ν | * numar1, numar2 ∈ Ν | ||
* 0 ⩽ numar1, numar2 ⩽ | * 0 ⩽ numar1, numar2 ⩽ 1.000.000.000 | ||
* dacă ambele numere sunt egale cu '''0''' se va afișa valoarea '''-1''' | * dacă ambele numere sunt egale cu '''0''' se va afișa valoarea '''-1''' | ||
== Exemplu == | == Exemplu == | ||
Line 13: | Line 13: | ||
: 24 36 | : 24 36 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 12 | : 12 | ||
== Rezolvare == | == Rezolvare == | ||
Line 45: | Line 45: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicație == | |||
Acest cod primește două numere întregi de la utilizator și verifică dacă acestea sunt valide înainte de a calcula CMMDC (cel mai mare divizor comun) folosind algoritmul lui Euclid. Verificarea validității se face prin verificarea dacă ambele numere sunt numere întregi și dacă sunt cuprinse între 0 și 1.000.000.000. În cazul în care ambele numere sunt egale cu 0, se va afișa -1, altfel se va afișa CMMDC-ul lor. |
Latest revision as of 15:36, 28 April 2023
Cerinţa[edit | edit source]
Să se scrie un program care să determine cel mai mare divizor comun a două numere naturale citite de la tastatură.
Date de intrare[edit | edit source]
Programul citește de la tastatură două numere naturale numar1 și numar2.
Date de ieşire[edit | edit source]
Programul afișează pe ecran numărul cmmdc, cel mai mare divizor comun al numerelor numar1 și numar2.
Restricții și precizări[edit | edit source]
- numar1, numar2 ∈ Ν
- 0 ⩽ numar1, numar2 ⩽ 1.000.000.000
- dacă ambele numere sunt egale cu 0 se va afișa valoarea -1
Exemplu[edit | edit source]
- Intrare
- 24 36
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 12
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def validare_date(numar1, numar2):
flag = False if numar1.isdigit() and numar2.isdigit(): if 0 <= int(numar1) <= 1_000_000_000 and 0 <= int(numar2) <= 1_000_000_000: flag = True return flag
def CMD(numar1, numar2):
while numar2: r = numar1 % numar2 numar1, numar2 = numar2, r cmmdc = numar1 return cmmdc
if __name__ == '__main__':
numar1, numar2 = input().split() if validare_date(numar1, numar2): print("\nDatele de intrare corespund restricțiilor impuse.\n") if int(numar1) == int(numar2) == 0: print("-1") else: print(CMD(int(numar1), int(numar2))) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>
Explicație[edit | edit source]
Acest cod primește două numere întregi de la utilizator și verifică dacă acestea sunt valide înainte de a calcula CMMDC (cel mai mare divizor comun) folosind algoritmul lui Euclid. Verificarea validității se face prin verificarea dacă ambele numere sunt numere întregi și dacă sunt cuprinse între 0 și 1.000.000.000. În cazul în care ambele numere sunt egale cu 0, se va afișa -1, altfel se va afișa CMMDC-ul lor.