0018 - Numarul de Divizori: Difference between revisions

From Bitnami MediaWiki
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...
 
Line 24: Line 24:
             flag = True
             flag = True
     return flag
     return flag


def nr_divizori(n):
def nr_divizori(n):
Line 29: Line 30:
     for i in range(1, n + 1):
     for i in range(1, n + 1):
         if n % i == 0:
         if n % i == 0:
             divizori += 1
             numar_divizori += 1
     printf(numar_divizori)
     return numar_divizori




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


</syntaxhighlight>
</syntaxhighlight>

Revision as of 19:21, 18 March 2023

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>