0306 - Zerouri: Difference between revisions
Pagină nouă: == 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 ”'''NRZ'''”, reprezentând valoarea calculată. == Restricții și precizări == * numar ∈ Ν * 0 ⩽ numar ⩽ 1.000.000.000 == Exemplu ==... |
mNo edit summary |
||
Line 7: | Line 7: | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* numar ∈ Ν | * numar ∈ Ν | ||
* 0 ⩽ n ⩽ 1.00 | |||
* 0 ⩽ numar ⩽ 1.000.000.000 | * 0 ⩽ numar ⩽ 1.000.000.000 | ||
== Exemplu == | == Exemplu == |
Revision as of 13:01, 15 March 2023
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 ”NRZ”, reprezentând valoarea calculată.
Restricții și precizări
- numar ∈ Ν
- 0 ⩽ n ⩽ 1.00
- 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) <= 1000: 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>