0018 - Numarul de Divizori

From Bitnami MediaWiki
Revision as of 19:10, 15 March 2023 by Alexandra Leș (talk | contribs) (Pagină nouă: == 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 == Exem...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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:
           divizori += 1
   printf(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(numar_divizori()))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>