0388 - Numarul Divizorilor Pari

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Se dă un număr natural numit ”numar”. Să se determine câți divizori pari are acest număr.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul natural ”numar”.

Date de ieşire[edit | edit source]

Programul afișează pe ecran numărul ”numarul_divizorilor_pari”, reprezentând numărul divizorilor pari ai lui ”numar”.

Restricții și precizări[edit | edit source]

  • numar ∈ Ν
  • 0 ⩽ numar ⩽ 1.000.000.000

Exemplu[edit | edit source]

Intrare
6
Ieșire
Datele de intrare corespund restricțiilor impuse.
2


Intrare
12
Ieșire
Datele de intrare corespund restricțiilor impuse.
4


Intrare
-20
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Explicație[edit | edit source]

Divizorii pari ai lui 6 sunt 2 și 6.
Divizorii pari ai lui 12 sunt 2, 4, 6, 12.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(numar):

   flag = False
   if numar.isdigit():
       if 0 <= int(numar) <= 1_000_000_000:
           flag = True
   return flag

def nr_divizori(numar):

   if numar % 2 == 0:
       numarul_divizorilor_pari = 1
   else:
       numarul_divizorilor_pari = 0
   for i in range(1, numar // 2 + 1):
       if numar % i == 0:
           if i % 2 == 0:
               numarul_divizorilor_pari += 1
   print(numarul_divizorilor_pari)

if __name__ == '__main__':

   numar = input()
   if validare_date(numar):
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
       nr_divizori(int(numar))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>

Explicație[edit | edit source]

Codul calculează numărul de divizori pari ai unui număr întreg dat și verifică validitatea datelor de intrare. Se folosește o funcție pentru validare și o funcție pentru calculul numărului de divizori pari. La rulare se verifică dacă numărul dat de utilizator este valid și se apelează funcția pentru calculul numărului de divizori pari.