Найти числа (1 часть). №25 ЕГЭ

1 часть задач на нахождение чисел, у которых делители соответствуют заданным условиям. Решение на Python.

№A81EC7, №6D2D86

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

Напишите программу, которая перебирает целые числа, большие 452 021, в порядке возрастания и ищет среди них такие, для которых значение M при делении на 7 даёт в остатке 3. Вывести первые 5 найденных чисел и соответствующие им значения M.

Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем –– значение М.

Строки выводятся в порядке возрастания найденных чисел.

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

В условии опечатка. Программа должна перебирать числа от 452 021. Это становится ясно при проверке ответа в Банке заданий ЕГЭ.

решение

Внесём изменения в функцию dividers(n), чтобы условия соответствовали задаче. В исходной программе меняем значение number (number = 452_021) и проверку m (if m % 7 == 3: return m).

Результат:

4520212250
452025150678
45202923810
452034226019
452048226026


№9C9EF1

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

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение наименьшего делителя, оканчивающегося на цифру 8, не равного ни самому числу, ни числу 8.

Строки выводятся в порядке возрастания найденных чисел.

вариант программы

Искать подходящий делитель будем при помощи функции divider(n). Делитель не равен восьми, при этом должен оканчиваться на 8. Значит, можно рассмотреть числа в интервале от 18 с шагом 10.

найти числа 1_1

результат

500002178
50000418
50001648
50001858
5000204348

№E90CD8

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

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение наименьшего делителя, оканчивающегося на цифру 9, не равного ни самому числу, ни числу 9.

Строки выводятся в порядке возрастания найденных чисел.

решение

Изменения в программе предыдущей задачи:

i in range(19, n, 10)

number = 600000 + 1

Результат:

60000119
600003409
60000549
6000077229
600008179