Site icon Информатика Эксперт

Е25.31 Напишите программу, которая перебирает целые числа, большие 700 000

Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю.

Напишите программу, которая перебирает целые числа, большие 700 000, в порядке возрастания и ищет среди них такие, для которых M оканчивается на 4. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце — соответствующие им значения M.

Например, для числа 20 M = 2 + 10 = 12.

Количество строк в таблице для ответа избыточно.

ЕГЭ по информатике Основная волна 08.06.2024 kompege.ru – задание №25

 

Решение:

Ответ:
700004 350004
700009 41194
700023 233344
700024 350014
700044 350024

Объяснение

Функция m(x)

Эта функция вычисляет сумму наименьшего и наибольшего делителей заданного числа x (исключая 1 и само x). Если таких делителей нет, функция возвращает 0.

  1. for i in range(2, int(x**0.5)+1): — Этот цикл перебирает числа от 2 до квадратного корня из x.
  2. if x % i == 0: — Проверяет, является ли i делителем x.
  3. return i + x//i — Если i является делителем, возвращает сумму i и x//i.
  4. return 0 — Если делителей не найдено, возвращает 0.

Основной код

Основной код перебирает числа от 700,001 до 999,999 и находит первые 5 чисел, для которых значение m(x) оканчивается на 4.

  1. k = 0 — Инициализирует счетчик k для отслеживания количества найденных подходящих чисел.
  2. for i in range(700_001, 1_000_000): — Перебирает числа от 700,001 до 999,999.
  3. if m(i) % 10 == 4: — Проверяет, оканчивается ли результат m(i) на 4.
  4. print(i, m(i)) — Выводит число и соответствующее ему значение m(x), если оно соответствует условию.
  5. k += 1 — Увеличивает счетчик k.
  6. if k == 5: — Если найдено 5 таких чисел, прерывает цикл.

Exit mobile version