Напишите программу, которая перебирает целые числа, большие 1 324 727, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно различных, каждый из которых содержит в своей записи ровно одну цифру 5.
В ответе в первом столбце таблицы запишите первые 5 найденных чисел в порядке возрастания, а во втором столбце - для каждого из чисел наибольший из соответствующих им найденных множителей.
Решение:
Решение на Python:
def prime(x):
for i in range(2, int(x**0.5)+1):
if x % i == 0:
return False
return True
def dels(x):
d = []
for i in range(2, int(x**0.5)+1):
if x % i == 0:
d.append(i)
d.append(x//i)
return d
k = 0
for x in range(1324728, 2000000):
d = dels(x)
if len(d) == 2 and d[0]*d[1] == x:
if prime(d[0]) and prime(d[1]):
if str(d[0]).count('5') == 1 and str(d[1]).count('5') == 1:
print(x, max(d))
k += 1
if k == 5: break
Ответ:
| 1324795 | 264959 |
| 1324801 | 1151 |
| 1324903 | 2543 |
| 1325015 | 265003 |
| 1325029 | 5279 |
Ответ: