3075 - Prod K

From Bitnami MediaWiki
Revision as of 10:11, 19 May 2023 by Petras.du.ioana (talk | contribs) (→‎Rezolvare)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

<syntaxhighlight lang="python" line>

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)

</syntaxhighlight>