4306 - Nr Div Fact
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">
- 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>