Добавить в корзинуПозвонить
Найти в Дзене

Разбор номера 21422 #kege по информатике #ЕГЭ25

Автор: Досрочная волна 2025
Уровень: Базовый Напишите программу, которая перебирает целые числа, бóльшие 1 125 000, в порядке возрастания и ищет среди них такие, у которых
есть натуральный делитель, оканчивающийся на цифру 7 и не равный ни самому числу, ни числу 7.
В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – наименьший делитель для каждого из них, оканчивающийся цифрой 7, не равный ни самому числу, ни числу 7. Относительно базовая задача 25 номера, но надо добавить этот разбор на канал для объективности, так как примеры ФИПИшных задач в списке разборов отсутствуют... Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻 Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!
Оглавление

Автор: Досрочная волна 2025
Уровень:
Базовый

Условие задачи:

Напишите программу, которая перебирает целые числа, бóльшие 1 125 000, в порядке возрастания и ищет среди них такие, у которых
есть натуральный делитель, оканчивающийся на цифру 7 и не равный ни самому числу, ни числу 7.
В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – наименьший делитель для каждого из них, оканчивающийся цифрой 7, не равный ни самому числу, ни числу 7.

Теоретическая справка:

Относительно базовая задача 25 номера, но надо добавить этот разбор на канал для объективности, так как примеры ФИПИшных задач в списке разборов отсутствуют...

Код решения:

Ответ:
1125003 467
1125006 97
1125009 17
1125011 3187
1125012 177
Ответ: 1125003 467 1125006 97 1125009 17 1125011 3187 1125012 177

Комментарии к коду:

  1. def divisors(x):
    Определение функции divisors, которая находит все делители числа x.
  2. div = []
    Создание пустого списка для хранения делителей числа x.
  3. for j in range(1, int(x*0.5)+1):
    Цикл от 1 до квадратного корня из x (оптимизация для поиска делителей).
  4. if x % j == 0:
    Проверка, является ли j делителем x (если остаток от деления равен 0).
  5. div += [j, x // j]
    Добавление в список делителей как j, так и x/j (парный делитель).
  6. return sorted(set(div))
    Возврат отсортированного списка уникальных делителей (set удаляет дубликаты).
  7. cnt = 0
    Инициализация счетчика найденных чисел.
  8. for x in range(1_125_000+1, 10*10):
    Цикл по числам от 1_125_001 до 10**10.
  9. div = [j for j in divisors(x) if j != x and j % 10 == 7 and j != 7]
    Создание списка делителей числа x, которые не равны самому x, оканчиваются на 7 и не равны 7.
  10. if len(div) > 0:
    Проверка, есть ли подходящие делители в списке.
  11. print(x, min(div))
    Вывод числа x и его минимального подходящего делителя.
  12. cnt += 1
    Увеличение счетчика найденных чисел.
  13. if cnt == 5:
    Проверка, найдено ли уже 5 чисел.
  14. break
    Прерывание цикла, если найдено 5 чисел.
Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻
Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!