3250 - Numere 77
Cerinţa
Se dau două numere naturale primul_numar și al_doilea_numar. Calculați suma numerelor echilibrate din intervalul [primul_numar, al_doilea_numar]. Un număr este echilibrat dacă are suma cifrelor pare egală cu suma cifrelor impare. De exemplu 3467 este echilibrat, iar 8333 nu este.
Date de intrare
Programul citește de la tastatură numerele primul_numar și al_doilea_numar.
Date de ieşire
Programul va afișa pe ecran numărul suma, reprezentând suma numerelor echilibrate din intervalul [primul_numar, al_doilea_numar].
Restricții și precizări
- 1 ≤ primul_numar ≤ al_doilea_numar ≤ 1.000.000
Exemplu
- Intrare
- 301
- 402
- Ieșire
- 2097
Explicatie
În intervalul [301, 402] numerele echilibrate sunt 314, 336, 341, 358, 363, 385, iar suma lor este 2097.
Rezolvare
<syntaxhighlight lang="python" line>
- citim numerele primul_numar si al_doilea_numar
try:
primul_numar = int(input("Introduceți primul numar: ")) al_doilea_numar = int(input("Introduceți al doilea numar: ")) if primul_numar < 0 or al_doilea_numar < 0: print("Numerele trebuie să fie pozitive.") exit()
except ValueError:
print("Datele de intrare trebuie să fie numere întregi.") exit()
- initializam suma cu 0
suma_echilibrate = 0
- calculam suma numerelor echilibrate
for numar in range(primul_numar, al_doilea_numar+1):
# initializam sumele cifrelor pare si impare cu 0 suma_cifre_pare = 0 suma_cifre_impare = 0
# calculam suma cifrelor pare si suma cifrelor impare ale numarului cifre = str(numar) for cifra in cifre: cifra_int = int(cifra) if cifra_int % 2 == 0: suma_cifre_pare += cifra_int else: suma_cifre_impare += cifra_int
# daca suma cifrelor pare este egala cu suma cifrelor impare, numarul este echilibrat if suma_cifre_pare == suma_cifre_impare: suma_echilibrate += numar
- afisam suma numerelor echilibrate
print("Suma numerelor echilibrate este:", suma_echilibrate)
</syntaxhighlight>