0061 - Afisare Divizori Comuni: Difference between revisions

From Bitnami MediaWiki
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...
 
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 ⩽ numar1 ⩽ numar2 ⩽ 1.000.000.000
* 0 < numar1, numar2 < 1.000.000.000
== Exemplu ==
== Exemplu ==
; Intrare
; Intrare
: 24 36
: 24 36
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 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.