Статья Автор: Лебедев Дмитрий Алексеевич

Метод моделирования в задаче 25

Рассмотрим задание 25 из ЕГКР апреля 2025 года

Напишите программу, которая перебирает целые числа, большие 8 996 452, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно различных, каждый из которых содержит в своей записи ровно две цифры 3.

В ответе в первом столбце таблицы (если вы выполняете работу в эмуляторе станции ЕГКР) запишите первые 5 найденных чисел в порядке возрастания, а во втором столбце — для каждого из чисел соответствующий им наибольший из найденных множителей.

Что можно понять из условия:

  • Нужные числа могут встречаться редко - поскольку они не просто произведение двух простых, а особых простых
  • Вроде надо найти не все числа, а только 5, значит числа не так далеко от заданной границы (можно предположить, что они врядли больше 10_000_000)
  • Простые кандидаты не меньше 200 ( 133 - делится на 7), это значит, что максимальное точно не более 50_000
Из этих предположений получаем  идею решения:
  1. Отобрать все простые числа до 50000 у которых ровно две цифры 3 
  2. Перебрать все пары, произведение которых более заданной границы
  3. Отсортировать и вывести ответ
можно немного упростить, но делать этого не будем, чтобы понять какие цифры получаются
Самое сложное реализовать 1 этап. Есть два способа:
  • A. Решето Эратосфена 
  • B. Перебор всех чисел, проверка на число 3 и простоту
Вначале реализуем способ B (как более "понятный")
 


На решение задания потребовалось менее 1 секунды при коде без всякой оптиминизации
Приведем решение с Решетом Эратосфена


Время одинаковое, поскольку основное время тратиться на построение массима Ans
Предлагаем самостоятельно решить это задание стандартным методом - перебором чисел, проверкой на число делителей и их состав
Почему такой подход полез/необходим - давайте представим, что надо
Найти все такие числа на отрезке от 9_000_000 до 10_000_000 и в качестве ответа вывести:
  • количество и сумму таких чисел
Решение этой задачи будет более быстрым (не нужна сортировка)
Печать