Определите количество восьмизначных чисел, записанных в шестиричной системе счисления, в записи которых не более четырех цифр 2, а произведение суммы четных на сумму нечётных цифр числа больше 256.
Решение через циклы
s = ’012345’
k = 0
for a in ’12345’:
for b in s:
for c in s:
for d in s:
for e in s:
for f in s:
for g in s:
for h in s:
n = a+b+c+d+e+f+g+h
sm0 = sum([int(i) for i in n if int(i) % 2 == 0]) # сумма чётных цифр числа
sm1 = sum([int(i) for i in n if int(i) % 2 == 1]) # сумма нечётных цифр числа
if n.count(’2’) <= 4 and sm0*sm1 > 256:
k += 1
print(k)
Решение через itertools
from itertools import product
count = set()
chet = ’024’ # чётные цифры 6-ричной системы счисления
nechet = ’135’ # нечётные цифры 6-ричной системы счисления
for x in product(’012345’,repeat = 8):
s = ’’.join(x)
if s[0] != ’0’ and s.count(’2’) <= 4:
sm_chet = sum(int(i) for i in s if int(i) % 2 == 0) # сумма чётных цифр числа
sm_nechet = sum(int(i) for i in s if int(i) % 2 != 0) # сумма нечётных цифр числа
if sm_chet * sm_nechet > 256:
count.add(s)
print(len(count))
Ответ: 1470