0306 - Zerouri
Cerinţa
Se dau n numere naturale nenule. Calculaţi numărul de zerouri de la sfârşitul scrierii zecimale a produsului celor n numere.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.
Date de ieşire
Programul afișează pe ecran numărul ”total_zerouri”, reprezentând valoarea calculată.
Restricții și precizări
- 0 ⩽ n ⩽ 100
- 0 ⩽ numar ⩽ 1.000.000.000
Exemplu
- Intrare
- 5
- 10 24 37 46 75
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 3
Explicație
Produsul celor 5 numere este 30636000, şi se termină cu 3 zerouri.
Rezolvare
<syntaxhighlight lang="python" line> def validare_date_numar(numar):
flag = False if numar.isdigit(): if 0 <= int(numar) <= 1_000_000_000: flag = True return flag
def validare_date_numere(n):
flag = False if 0 <= int(n) <= 100: flag = True return flag
def nr_zerouri(n, numere):
numere_2 = [0] * n numere_5 = [0] * n
# calculam numarul de factori 2 si 5 pentru fiecare numar for i in range(n): num = numere[i] while num % 2 == 0: numere_2[i] += 1 num //= 2 while num % 5 == 0: numere_5[i] += 1 num //= 5
# numaram numarul minim de factori 2 si 5 pentru fiecare numar min_2 = min(numere_2) min_5 = min(numere_5)
# adunam toate valorile minime pentru a obtine numarul total de zerouri total_zerouri = min_2 + min_5
return total_zerouri
if __name__ == '__main__':
n = int(input()) if validare_date_numere(n): print("\nDatele de intrare corespund restricțiilor impuse.\n") lista_numere = [] for i in range(n): while True: numar = input(f"Introduceți numărul {i + 1}: ") if validare_date_numar(numar): lista_numere.append(int(numar)) break else: print("Numărul introdus nu corespunde restricțiilor impuse.") print(f"\nNumărul de zerouri de la sfârşitul scrierii zecimale a produsului: {total_zerouri(lista_numere)}") else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>