Задание 25. Информатика. ЕГЭ. Досрочный экзамен. 08.04.2025
- Просмотры: 1264
- Изменено: 8 апреля 2025
Напишите программу, которая перебирает целые числа, бóльшие \(1~125~000,\) в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру \(7\) и не равный ни самому числу, ни числу \(7.\) В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – наименьший делитель для каждого из них, оканчивающийся цифрой \(7,\) не равный ни самому числу, ни числу \(7.\) Количество строк в таблице для ответа избыточно.
Решение:
Python
def divisors(n):
div7 = set()
for x in range(2, int(n**0.5) + 1):
if n % x == 0:
d = n // x
if x != 7 and x % 10 == 7:
div7.add(x)
if d != 7 and d % 10 == 7:
div7.add(d)
if len(div7):
return min(div7)
return 0
i = 0
n = 1_125_000
while i < 5:
n += 1
d = divisors(n)
if d:
print(n, d)
i += 1
Ответ:
\(1125003 \,\, 467\)
\(1125006 \,\, 97\)
\(1125009 \,\, 17\)
\(1125011 \,\, 3187\)
\(1125012 \,\, 177\)