def isPrime(n):
for i in range(2, n // 2):
if n % i == 0:
return False
return True
def primenumbers():
# yield 1
yield 2
yield 3
i = 4
while True:
if isPrime(i):
yield i
i += 1
def main():
target = 600851475143
primefactors = []
print(primefactors, target)
while target > 1:
for p in primenumbers():
if target % p == 0:
primefactors.append(p)
target = target // p
print(primefactors, target)
break
print(sorted(primefactors)[-1])
main()