Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №2

Определите количество восьмизначных чисел, записанных в шестиричной системе счисления, в записи которых не более четырех цифр 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
Оцените статью
Я решу все!