Это проблема проекта Эйлера. Какой самый большой простой делитель числа 600851475143? Я написал следующий код:
def prime_factors(x):
my_list = []
for no3 in range(2, int(x)):
i = 0
if x % no3 == 0:
for a in range(1, int(no3)):
if no3 % a == 0:
i = i + 1
if i == 1:
my_list.append(no3)
print(max(my_list))
prime_factors(600851475143)
Он отлично работает для небольших чисел, но для большого числа, такого как этот «600851475143», код не дает вывода, он просто продолжает работать. Я хочу знать, в чем проблема с этим кодом и как я могу ее решить.