0306 - Zerouri

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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

Dacă datele sunt introduse corect,pe ecran se va afișa :"Datele sunt introduse corect.",apoi pe un rând nou numărul NRZ, reprezentând valoarea calculată.În cazul contrar,se va afișa pe ecran "Datele nu corespund restricțiilor impuse.".

Restricții și precizări

  • 0 ⩽ n ⩽ 100
  • 0 ⩽ n ⩽ 1.000.000.000

Exemplu

Intrare
5
10 24 37 46 75
Ieșire
Datele sunt introduse corect.
3

Explicație

Produsul celor 5 numere este 30636000, şi se termină cu 3 zerouri.

Rezolvare

# Funcție pentru validarea numărului de intrare 
def validare_date_numar(numar):
    flag = False
    if numar.isdigit():  # verifică dacă numărul este un întreg pozitiv
        if 0 < int(numar) <= 100:  # verifică dacă numărul se află în intervalul specificat
            flag = True  # dacă toate condițiile sunt îndeplinite, returnează 'True'
    return flag

# Funcție pentru validarea listei de numere de intrare
def validare_date_numere(n, numere):
    flag = False
    if len(numere) == n and all(num.isdigit() and int(num) > 0 for num in numere):
        # verifică dacă lista conține exact n numere întregi pozitive
        flag = True
    return flag

# Funcție pentru calculul numărului de zerouri dintr-un număr dat
def nr_zerouri(numar):
    NRZ = 0
    while numar % 10 == 0:
        NRZ += 1
        numar //= 10
    return NRZ

if __name__ == "__main__":
    n = input()  # primește numărul de intrare 'n' de la utilizator
    if validare_date_numar(n):  # verifică dacă 'n' este valid
        n = int(n)
        numere = input().split()  # primește lista de 'n' numere de la utilizator
        if validare_date_numere(n, numere):  # verifică dacă lista de numere este validă
            print("\nDatele sunt introduse corect.\n")
            produs = 1
            for num in numere:
                produs *= int(num)  # calculează produsul numerelor din listă
            NRZ = nr_zerouri(produs)  # calculează numărul de zerouri din produs
            print(NRZ)  # afișează numărul de zerouri
        else:
            print("Datele nu corespund restrictiilor impuse.")
    else:
        print("Datele nu corespund restrictiilor impuse.")