Это четвертая версия кода. Еще быстрее. Можно поиграться и с большими числами, например 600851475143777, но некоторые простые большие может искать долго.
n=600851475143777
md=0
i=3
while i<n:
while not(n%i):
n=n//i
md=i
i+=2
print (md) if n<md else print (n)
Например в 600851475143777 есть в множителях 11, 13, 41, 28871, 3549649.
Это четвертая версия кода. Еще быстрее. Можно поиграться и с большими числами, например 600851475143777, но некоторые простые большие может искать долго.
n=600851475143777
md=0
i=3
while i<n:
while not(n%i):
n=n//i
md=i
i+=2
print (md) if n<md else print (n)
Например в 600851475143777 есть в множителях 11, 13, 41, 28871, 3549649.
Объяснение: