Напишите программу, которая перебирает целые числа, большие 5 000 000, в порядке возрастания и ищет среди них числа, представимые в виде произведения ровно трёх простых множителей, необязательно различных, каждый из которых содержит в своей записи хотя бы одну цифру 3 или 7. В ответе запишите первые пять чисел в порядке возрастания.
Добавлено: 23.03.26 18:57
Решение на языке Python:
def contains_3_or_7(n):
return "3" in str(n) or "7" in str(n)
count = 0
x = 5_000_001
while count < 5:
factors = []
temp = x
d = 2
while d * d <= temp:
while temp % d == 0:
factors.append(d)
temp //= d
d += 1
if temp > 1:
factors.append(temp)
if len(factors) == 3 and all(contains_3_or_7(p) for p in factors):
print(x, factors)
count += 1
x += 1Ответ: 5000001 5000003 5000007 5000013 5000019
Автор - rubygem17
None