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[edit | edit source]

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[edit | edit source]

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

Date de ieșire[edit | edit source]

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[edit | edit source]

  • 1 ≤ numar ≤ 2.000.000.000

Exemplu[edit | edit source]

Intrare
123242 2
Ieșire
12

Explicație[edit | edit source]

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

Rezolvare[edit | edit source]

<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>