0061 - Afisare Divizori Comuni: Difference between revisions
Robert Manc (talk | contribs) Pagină nouă: == Cerinţa == Să se scrie un program care afișează divizorii comuni ai două numere naturale citite de la tastatură == Date de intrare == Programul citește de la tastatură numerele '''numar1''' și '''numar2'''. == Date de ieşire == Programul afișează pe ecran, în ordine crescătoare, divizorii comuni ai numerelor '''numar1''' și '''numar2''', separați printr-un spațiu. == Restricții și precizări == * numar ∈ Ν * 0 ⩽ numar1 ⩽ numar2 ⩽ 1.00... |
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 == | ||
* numar ∈ Ν | * numar ∈ Ν | ||
* 0 | * 0 < numar1, numar2 < 1.000.000.000 | ||
== Exemplu == | == Exemplu == | ||
; Intrare | ; Intrare | ||
: 24 36 | : 24 36 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 1 2 3 4 6 12 | : 1 2 3 4 6 12 | ||
== Rezolvare == | == Rezolvare == | ||
Line 44: | Line 44: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicație == | |||
Programul citește două numere întregi de la utilizator și afișează divizorii comuni ai acestora. În primul rând, funcția validare_date() validează datele introduse de utilizator, verificând dacă acestea sunt numere întregi și dacă se încadrează în intervalul 1 - 1.000.000.000. Funcția divizori_comuni() primește cele două numere întregi și returnează o listă cu divizorii comuni ai celor două numere, prin parcurgerea tuturor numerelor întregi între 1 și cel mai mic dintre cele două numere și verificarea dacă acestea sunt divizori ai ambelor numere. Dacă datele de intrare nu sunt valide, programul afișează un mesaj corespunzător. |
Latest revision as of 10:01, 25 April 2023
Cerinţa[edit | edit source]
Să se scrie un program care afișează divizorii comuni ai două numere naturale citite de la tastatură
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele numar1 și numar2.
Date de ieşire[edit | edit source]
Programul afișează pe ecran, în ordine crescătoare, divizorii comuni ai numerelor numar1 și numar2, separați printr-un spațiu.
Restricții și precizări[edit | edit source]
- numar ∈ Ν
- 0 < numar1, numar2 < 1.000.000.000
Exemplu[edit | edit source]
- Intrare
- 24 36
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 1 2 3 4 6 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) < int(numar2) <= 1_000_000_000: flag = True return flag
def divizori_comuni(numar1, numar2):
divizori = [] for i in range(1, min(numar1, numar2) + 1): if numar1 % i == 0 and numar2 % i == 0: divizori.append(i) return divizori
if __name__ == "__main__":
numar1 = input() numar2 = input() if validare_date(numar1, numar2): print("\nDatele de intrare corespund restricțiilor impuse.\n") divizori = divizori_comuni(int(numar1), int(numar2)) for divizor in divizori: print(divizor, end=" ") else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>
Explicație[edit | edit source]
Programul citește două numere întregi de la utilizator și afișează divizorii comuni ai acestora. În primul rând, funcția validare_date() validează datele introduse de utilizator, verificând dacă acestea sunt numere întregi și dacă se încadrează în intervalul 1 - 1.000.000.000. Funcția divizori_comuni() primește cele două numere întregi și returnează o listă cu divizorii comuni ai celor două numere, prin parcurgerea tuturor numerelor întregi între 1 și cel mai mic dintre cele două numere și verificarea dacă acestea sunt divizori ai ambelor numere. Dacă datele de intrare nu sunt valide, programul afișează un mesaj corespunzător.