0439 - Fact Zero
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieşire[edit | edit source]
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[edit | edit source]
- 1 ≤ n ≤ 1000
- n! = 1 * 2 * ... * n
Exemplu[edit | edit source]
- Intrare
- 13
- Ieșire
- 2
Explicație[edit | edit source]
13! = 6227020800, deci se termină cu 2 zerouri.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> 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.")
</syntaxhighlight>
Explicație rezolvare[edit | edit source]
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.