3246 - Echilibrat ab
Sursa: [1]
Cerința[edit | edit source]
Se dau două numere naturale a și b. Calculați suma numerelor echilibrate din intervalul [a,b]. Un număr este echilibrat dacă are număr par de cifre si are numărul de cifre pare egal cu numărul de cifre impare. De exemplu 3427 este echilibrat, iar 2333 nu este.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele a și b.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numărul s, reprezentând suma numerelor echilibrate din intervalul [a,b].
Restricții și precizări[edit | edit source]
1 ≤ a ≤ b ≤ 1.000.000
Exemplu:[edit | edit source]
Intrare
56 71 Ieșire
509
Explicație[edit | edit source]
În intervalul [56,71] numerele echilibrate sunt 56, 58, 61, 63, 65, 67, 69, 70, iar suma lor este 509.
Încărcare soluție[edit | edit source]
<syntaxhighlight lang="python" line> def is_balanced(n):
digits = [int(d) for d in str(n)] even_count = sum(d % 2 == 0 for d in digits) odd_count = len(digits) - even_count return len(digits) % 2 == 0 and even_count == odd_count
a, b = map(int, input().split())
sum_balanced = 0 for i in range(a, b+1):
if is_balanced(i): sum_balanced += i
print(sum_balanced) </syntaxhighlight>