0439 - Fact Zero
De la Universitas MediaWiki
Cerinţa
Se citește un număr natural n. Să se determine numărul de zerouri de la sfârșitul scrierii zecimale a numărului n!.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul afișează pe ecran numărul Z, reprezentând numărul de zerouri de la sfârșitul scrierii zecimale a numărului n!.
Restricții și precizări
- 1 ≤ n ≤ 1000
- n! = 1 * 2 * ... * n
Exemplu
- Intrare
- 13
- Ieșire
- 2
Explicație
13! = 6227020800, deci se termină cu 2 zerouri.
Rezolvare
def validare_date(n):
if n < 1 or n > 10**5:
return False
return True
def calculeaza_puteri(n):
nr5 = 0
nr2 = 0
i = 5
while i <= n:
nr5 += n // i
i *= 5
i = 2
while i <= n:
nr2 += n // i
i *= 2
if nr5 <= nr2:
return nr5
else:
return nr2
if __name__ == '__main__':
n = int(input("Introduceti n: "))
if validare_date(n):
putere = calculeaza_puteri(n)
print(f"Puterea minima de 2 sau 5 care divide n! fara rest este: {putere}")
else:
print("Datele de intrare nu corespund restricțiilor impuse.")
Explicație rezolvare
Acest cod calculează puterea minimă de 2 sau 5 care divide n! fără rest, unde n este un număr dat de la tastatură. Codul verifică mai întâi dacă intrarea este validă, apoi folosește două bucle while pentru a calcula numărul de factori de 5 și 2 care împart n! fără rest. La final, codul compară cele două numere de factori și afișează cel mai mic dintre ele ca putere minimă de 2 sau 5 care divide n! fără rest.