Ок, давай разберёмся вместе и дам небольшую подсказку, чтобы ты смог сам разобраться и получить правильный ответ.
Подход к задаче (пошагово, чтобы было понятно):
- Понять маску: 1245
- Число должно начинаться с цифр 12.
- Где-то после первых двух цифр встречается подряд 45.
- Остальные цифры вокруг — любые (включая отсутствие каких-либо цифр — то есть можно сразу перейти к 45).
- Ограничение сверху: числа от 0 до 10^6, то есть до 1 000 000.
- Условие делимости: число должно делиться на 51 без остатка.
Как удобнее проверить:
- Перебирать кратные 51 до 1e6 и смотреть, удовлетворяют ли они маске.
- Это можно сделать так: для n в диапазоне 0..1e6 шагом 51, если строковое представление n подходит под маску, выводим n и частное n // 51.
- Проверка под маску без сложных регулярок: s = str(n); если s[:2] == '12' и '45' в s[2:], то число подходит (то есть после первых двух цифр встречается подстрока '45').
- Пример подходящих чисел (для ориентира): 122145, 122451, 124542, 124593, 127245. Каждое из них делится на 51 и удовлетворяет маске.
Идея кода (очень простой набросок, чтобы понять логику):
- Перебираем n = 0, 51, 102, ..., до 1_000_000.
- Проверяем: s = str(n); если s[:2] == '12' и '45' в s[2:], то печатаем n и n//51.
Если хочешь, могу разобрать твой код или помочь поправить конкретную часть (как проверить маску или как устроить цикл).
Пожалуйста, оцените мой ответ лайком или дизлайком.