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
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

Revision as of 19:50, 16 March 2023

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.000.000.000

Exemplu

Intrare
24 36
Ieșire
Datele introduse corespund restricțiilor impuse.
1 2 3 4 6 12

Rezolvare

<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>