Я пробовал задачу 47 (из проекта euler), вопрос приведен ниже:
Первые два последовательных числа, которые имеют два различных простых множителя:
14 = 2 × 7
15 = 3 × 5
Первые три последовательных числа, у которых есть три различных простых множителя:
644 = 2² × 7 × 23
645 = 3 × 5 × 43
646 = 2 × 17 × 19.
Найдите первые четыре последовательных целых числа, у каждого из которых будет четыре различных простых множителя. Какое первое из этих чисел?
Вот мой подход: (вам может потребоваться (pip) установить sympy)
import time
import sympy
start=time.time()
a=list(sympy.primerange(1,101))
b=[]
for i in range(646,100000):
c=[]
for j in a:
if i%j==0:
c.append(j)
if len(c)==4:
s=[str(o) for o in c]
res=int("".join(s))
b.append(res)
else:
pass
else:
pass
print(b[:4])
end=time.time()
print(end-start)
Как мне реализовать logi c, что факторы должны быть разными? ответ, который я получаю сейчас (который, очевидно, неверен): 23511 правильный ответ: 134043
простые простые числа бази c функции: https://www.geeksforgeeks.org/prime-functions-python-sympy
Спасибо!