0440 - Fact Zero 1
Cerinţa[edit | edit source]
Se citește un număr natural n. Să se determine ultima cifră nenulă din scrierea zecimală 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 C, reprezentând ultima cifră nenulă din scrierea zecimală 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
- 8
Explicație[edit | edit source]
13! = 6227020800, iar ultima cifră nenulă este 8.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def validare_date(n):
if n < 1 or n > 1000: return False return True
if __name__ == '__main__':
n = int(input("Introduceți numărul n: "))
if validare_date(n): # Inițializăm contoarele pentru factorii 2 și 5 nr_factori_2 = 0 nr_factori_5 = 0
# Calculăm numărul de factori ai lui 2 și 5 din descompunerea factorialului for i in range(2, n+1): x = i while x % 2 == 0: nr_factori_2 += 1 x //= 2 while x % 5 == 0: nr_factori_5 += 1 x //= 5
# Determinăm ultima cifră nenulă if nr_factori_2 > nr_factori_5: ultima_cifra_nenula = 8 elif nr_factori_5 > nr_factori_2: ultima_cifra_nenula = 5 else: ultima_cifra_nenula = 6
print("Ultima cifră nenulă a lui", n, "! este", ultima_cifra_nenula) print("\nDatele de intrare corespund restricțiilor impuse.\n") else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>
Explicație rezolvare[edit | edit source]
Pentru a determina ultima cifră nenulă din descompunerea factorialului numărului n, trebuie să determinăm câți factori primi 2 și câți factori primi 5 sunt în descompunerea factorialului și să comparăm aceste valori. Pentru a implementa această soluție în Python, putem citi numărul n de la tastatură și apoi putem calcula numărul de factori primi 2 și 5 din descompunerea factorialului folosind o buclă for și două bucle while. După ce am calculat numărul de factori primi 2 și 5, putem compara aceste valori și să determinăm ultima cifră nenulă. Pentru a ne asigura că datele de intrare respectă restricțiile impuse, putem defini o funcție separată de validare a datelor și să apelăm această funcție înainte de a efectua calculul și afișarea rezultatului.