3665 - CMMCP
Sursă: [1]
Cerința
Se dă un număr natural număr1. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10.
Date de intrare
Programul citește de la tastatură numărul număr1.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa "Datele sunt introduse corect.", apoi se va afișa pe ecran cea mai mare cifră pară a numărului introdus. În caz contrar, se va afișa pe ecran. "Datele nu au fost introduse corect".
Restricții și precizări
- 0 ⩽ număr1 ⩽ 1.000.000.000.000
Exemplu
- Intrare
- 1440
- Ieșire
- 4
Rezolvare
<syntaxhighlight lang="python" line> def verificare_restricții(număr1):
#Verifică dacă numărul dat respectă restricțiile impuse. if număr1 < 0 or număr1 > 1000000000000: return False return True
def rezolvare_problema(număr1):
maxim = 0 # inițializăm maximul cu o valoare nesemnificativă
if număr1 == 0: maxim = 0
# parcurgem cifrele numărului și găsim cea mai mare cifră pară while număr1 != 0: if maxim == 10: # dacă nu am găsit încă nicio cifră pară, maximul primește valoarea primei cifre pare if număr1 % 2 == 0: maxim = număr1 % 10 else: # dacă am găsit deja o cifră pară, maximul se actualizează doar dacă găsim o cifră pară mai mare decât cea actuală if număr1 % 10 > maxim and număr1 % 2 == 0: maxim = număr1 % 10 număr1 = număr1 // 10 # trecem la următoarea cifră
if maxim == 10: return 10 else: return maxim
if __name__ == "__main__":
număr1 = int(input("Introduceți numărul: ")) if verificare_restricții(număr1): print("Datele sunt introduse corect.") rezultat = rezolvare_problema(număr1) print("Cea mai mare cifră pară din număr este:", rezultat) else: print("Datele nu au fost introduse corect.")
</syntaxhighlight>