3075 - Prod K

De la Universitas MediaWiki

Sursa: [1]

Cerința

Scrieți un program care citește un număr natura n și o cifra. Programul va calcula produsul cifrelor numarului diferite de cifra data.

Date de intrare

Programul citește de la tastatură numarul si cifra.

Date de ieșire

Programul va afișa pe ecran produsul, cu semnificația din enunț. Dacă numarul nu conține cifre diferite de cifra data, programul va afișa valoarea 0.

Restricții și precizări

  • 1 ≤ numar ≤ 2.000.000.000

Exemplu

Intrare
123242 2
Ieșire
12

Explicație

S-a citit n=123242 iar produsul afișat este P=12 (=1*3*4).

Rezolvare

def calculeaza_produs(numarul, cifra):
    if cifra < 0:
        print("Cifra trebuie să fie pozitivă.")
        exit()

    produs = 1
    contine_cifra_diferita = False

    # Parcurgem fiecare cifră a numarului
    while numarul > 0:
        cifra_curenta = numarul % 10

        # Verificăm dacă cifra este diferită de cifra dată și este pozitivă
        if cifra_curenta != cifra and cifra > 0:
            produs *= cifra_curenta
            contine_cifra_diferita = True

        numarul //= 10

    # Dacă numarul nu conține nicio cifră diferită de cifra dată, returnăm 0
    if not contine_cifra_diferita:
        return 0

    return produs

if __name__ == "__main__":
    # Citim valorile de intrare
    numarul, cifra = map(int, input("Introduceți valorile pentru numarul și cifra: ").split())

    # Validăm intrarea
    if numarul < 1 or numarul > 2000000000:
        print("Numarul trebuie să fie între 1 și 2.000.000.000.")
        exit()

    # Calculăm și afișăm produsul
    rezultat = calculeaza_produs(numarul, cifra)
    print("Produsul cifrelor numarului diferite de cifra dată este:", rezultat)