0018 - Numarul de Divizori

From Bitnami MediaWiki

Cerinţa

Se dă un număr natural numit ”numar”. Calculaţi numărul de divizori ai acestui numar.

Date de intrare

Fişierul de intrare nrdiv.in conţine pe prima linie numărul numar

Date de ieşire

Fişierul de ieşire nrdiv.out va conţine pe prima linie numărul numar_divizori, reprezentând numărul de divizori ai lui numar.

Restricții și precizări

  • numar ∈ Ν
  • 0 ⩽ numar ⩽ 100.000

Exemplu

Intrare
6
Ieșire
Datele introduse corespund restricțiilor impuse.
4

Explicație

Pentru numărul 6 avem divizorii 1, 2, 3, 6 deci numărul acestora este egal cu 4.

Rezolvare

<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(n):

   numar_divizori = 0
   for i in range(1, n + 1):
       if n % i == 0:
           numar_divizori += 1
   return numar_divizori


if __name__ == '__main__':

   numar = input()
   if validare_date(numar):
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
       with open('nrdiv.in', 'r') as f:
           n = int(f.readline())
       with open('nrdiv.out', 'w') as f:
           f.write(str(nr_divizori(n)))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>