project-euler/0003.py
2018-03-26 16:10:03 +02:00

58 lines
1013 B
Python

from functools import reduce
target = 600851475143
# list = []
# for num in range(1, int(target / 2)):
# print(num)
# if (target % num == 0):
# list.append(num)
# 2^x - 1 6k - 1
# print(list)
factors = []
def findLargestPrimeFactor(n):
primeFactor = 1
factors.append(primeFactor)
print('appended')
i = 2
while i <= n / i:
if n % i == 0:
factors.append(i)
primeFactor = i
n = int(n / i)
else:
i += 1
if primeFactor < n:
primeFactor = n
return primeFactor
def findPrimeFactors(n):
factors = []
i = 2
while i <= n / i:
if n % i == 0:
factors.append(i)
n = int(n / i)
else:
i += 1
factors.append(n)
return factors
target = 600851475143
# print(findLargestPrimeFactor(target))
factors = findPrimeFactors(target)
print(factors)
result = reduce((lambda x, y: x * y), factors)
print(result)
print(findPrimeFactors(48))