Напишите программу, которая перебирает целые числа, большие 800000, в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру 9 и не равный ни самому числу, ни числу 9. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце — соответствующий минимальный делитель для каждого числа, оканчивающийся цифрой 9, не равный ни самому числу, ни числу 9.
Строки выводятся в порядке возрастания найденных чисел.
Решение:
Решение на 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(800000, 2000000):
d = dels(x)
d9 = [i for i in d if i % 10 == 9 and i != 9 and i != x]
if len(d9) > 0:
print(x, min(d9))
k += 1
if k >= 5: break
Ответ:
| 800001 | 309 |
| 800003 | 47059 |
| 800004 | 409 |
| 800006 | 269 |
| 800007 | 39 |
Ответ: