0306 - Zerouri
De la Universitas MediaWiki
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
def validare_date_numar(numar):
flag = False
if numar.isdigit():
if 0 < int(numar) <= 100:
flag = True
return flag
def validare_date_numere(n, numere):
flag = False
if len(numere) == n and all(num.isdigit() and int(num) > 0 for num in numere):
flag = True
return flag
def nr_zerouri(numar):
total_zerouri = 0
while numar % 10 == 0:
total_zerouri += 1
numar //= 10
return total_zerouri
def main():
n = input("Introduceti numarul de numere: ")
if validare_date_numar(n):
n = int(n)
numere = input("Introduceti numerele separate prin spatiu: ").split()
if validare_date_numere(n, numere):
print("\nDatele de intrare corespund restrictiilor impuse.\n")
produs = 1
for num in numere:
produs *= int(num)
total_zerouri = nr_zerouri(produs)
print("Numarul de zerouri de la sfarsitul produsului este:", total_zerouri)
else:
print("Datele de intrare nu corespund restrictiilor impuse.")
else:
print("Datele de intrare nu corespund restrictiilor impuse.")
if __name__ == "__main__":
main()