8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Определите количество восьмизначных чисел, записанных в шестиричной системе счисления, в записи которых не более четырех цифр 2, а произведение суммы четных на сумму нечётных цифр числа больше 256.
Решение через циклы
Составим программу для перебора всех восьмизначных чисел. Для этого организуем 8 вложенных циклов, где каждый
цикл отвечает за свою цифру числа. Первый цикл перебирает цифры от 1 до 5, чтобы число не начиналось с нуля,
остальные – от 0 до 5. После формирования числа мы проверяем условия:
- В числе не более четырёх цифр 2 – проверяем через count.
- Вычисляем сумму чётных цифр и сумму нечётных цифр числа через списочное выражение с условием.
- Проверяем, что произведение суммы чётных на сумму нечётных цифр больше 256. Если все условия выполняются, увеличиваем счётчик ответа.
s = ’012345’ # все цифры шестеричной системы k = 0 # счётчик подходящих чисел # перебираем числа, задав каждую цифру for a in ’12345’: # первая цифра - не 0 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
Для перебора всех восьмизначных чисел используем функцию product из модуля itertools, которая строит все
последовательности длины 8 из цифр 0–5, где цифры могут повторяться или не встречаться вовсе. После
формирования числа преобразуем кортеж в строку. Затем проверяем условия:
- Первая цифра не равна нулю, иначе число будет семизначным.
- В числе не более четырёх цифр 2 – проверяем через count.
- Вычисляем сумму чётных и сумму нечётных цифр с помощью генераторов. Проверяем, что произведение суммы чётных на сумму нечётных цифр больше 256.
Если все условия выполняются, добавляем число во множество count, после отработки цикла выводим длину count.
from itertools import product count = set() # множество для хранения подходящих чисел chet = ’024’ # чётные цифры шестеричной системы nechet = ’135’ # нечётные цифры шестеричной системы for x in product(’012345’, repeat=8): # перебираем все 8-значные комбинации s = ’’.join(x) # формируем число if s[0] != ’0’ and s.count(’2’) <= 4: # первая цифра не 0 и не более четырёх двоек 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)) # выводим количество подходящих чисел
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!