#!/usr/bin/python
# Project Euler Problem 3
# Author = Mindflyer
# The prime factors of 13195 are 5, 7, 13 and 29.
# What is the largest prime factor of the number 600851475143 ?
import math
N1 = 600851475143
Primes = []
Factors = []
z = 0
def isprime(n): #check if integer n is a prime
# make sure n is a positive integer
n = abs(int(n))
# 0 and 1 are not primes
if n < 2:
return False
# 2 is the only even prime number
if n == 2:
return True
# all other even numbers are not primes
if not n & 1:
return False
# range starts with 3 and only needs to go up the squareroot of n
# for all odd numbers
for x in range(3, int(n**0.5)+1, 2):
if n % x == 0:
return False
return True
for i in range(1, math.sqrt(N1)):
if isprime(i):
Primes.append(i)
for x in Primes:
if N1 % x == 0:
while z != 1:
N1 / x == z
z = x
Factors.append(x)
break;
print max(Factors)