Задание 25. Информатика. ЕГЭ 2024. Пересдача. 04.07.2024
- Просмотры: 445
- Изменено: 25 ноября 2024
Напишите программу, которая перебирает целые числа, больше \(700~000\), в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру \(7\) и не равный ни самому числу, ни числу \(7\). Выведите первые пять найденных чисел и для каждого — соответствующий наименьший делитель, оканчивающийся на цифру \(7\), не равный ни самому числу, ни числу \(7\).
Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем — значение наименьшего делителя, оканчивающегося на цифру \(7\), не равного ни самому числу, ни числу \(7\).
Строки выводятся в порядке возрастания найденных чисел.
Количество строк в таблице для ответа избыточно.
Решение:
Python
def divisors(n):
d = []
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
d.append(i)
d.append(n // i)
return sorted(d)
k = 0
n = 700_000
while k < 5:
n += 1
for d in divisors(n):
if d % 10 == 7 and d != 7:
k += 1
print(n, d)
break
Ответ:
\(700002 \,\, 27\)
\(700003 \,\, 37\)
\(700005 \,\, 6087\)
\(700007 \,\, 77\)
\(700008 \,\, 29167\)