58 lines
1013 B
Python
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))
|