Найдите 5 чисел больших 500000, таких, что среди их делителей есть число, оканчивающееся на 8, при этом этот делитель не равен 8 и самому числу.
В качестве ответа приведите 5 наименьших чисел, соответствующих условию.
Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем минимальный делитель, оканчивающийся на 8, не равный 8 и самому числу.
Решение:
Решение на Python:
#Добавляем функцию проверки делителей числа:
def dels(x):
d = set()
for i in range(2, int(x**0.5) + 1):
if x % i == 0:
d.add(i)
d.add(x // i)
return d
k = 0
for x in range (500000, 2000000) :
#Создаем список и проверяем условия
d = dels(x)
d8 = [i for i in d if i % 10 == 8 and i != 8 and i!= x]
if len(d8) > 0:
print(x, min(d8))
k += 1
if k >=5: break
Ответ:
| 500002 | 178 |
| 500004 | 18 |
| 500016 | 48 |
| 500018 | 58 |
| 500020 | 4348 |
Ответ: