4306 - Nr Div Fact

From Bitnami MediaWiki

Cerința[edit | edit source]

Se citește un număr natural n. Calculați și afișați numărul de divizori pozitivi ai numărului n!.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n.

Date de ieșire[edit | edit source]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."

Pe următoarea linie se va afișa numărul de divizori pozitivi ai numărului n!.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."

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

  • n<=100000.

Exemplu 1[edit | edit source]

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

Explicație[edit | edit source]

Factorialul lui 4 este egal cu 24, iar 24 are 8 divizori (1, 2, 3, 4, 6, 8, 12, 24).

Exemplu 2[edit | edit source]

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

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 4306 - NrDivFact

def conditii(n):

   return n <= 100_000


def nr_div_fact(n):

   # Calculăm factorialul lui n
   n_factorial = 1
   for i in range(1, n + 1):
       n_factorial *= i
   nr_divizori = 0
   # Pentru fiecare număr de la 1 la n_factorial...
   for i in range(1, n_factorial + 1):
       # ...dacă n_factorial se împarte la i...
       if n_factorial % i == 0:
           # ...atunci i este divizor al lui n_factorial
           nr_divizori += 1
   print(nr_divizori)


if __name__ == "__main__":

   n = int(input())
   if not conditii(n):
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       nr_div_fact(n)

</syntaxhighlight>