euler/python/e003.py

22 lines
486 B
Python

"""Find the largest prime factor of a composite number.
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
"""
def pfactor(n):
i = 2
while (n % i != 0 and i < n):
i = i + 1
if i == n:
return [n]
p = pfactor(n // i)
p.append(i)
return sorted(p, reverse=True)
def main():
print 'Prime factors of 600851475143:'
print pfactor(600851475143)
if __name__ == '__main__':
main()