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

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.")