[Euler Project Problem 3]Largest prime factor
2015. 7. 16. 02:05
def isprime(x): r = int(sqrt(x)) if x%2 == 0: return 0 for i in range(3, r+1, 2): if x%i == 0: return 0 return 1 def diminish(x, a): while x%a ==0: x /= a return x def lpf(x): def lpfSub(a, result): if a<2: return result elif isprime(a): return a for i in range(max(3, result), int(sqrt(a))+1, 2): if isprime(i) and a%i == 0: a = diminish(a, i) result = i return lpfSub(a, result) result = 1 if x%2 == 0: result = 2 x = diminish(x, 2) return lpfSub(x, result) print lpf(600851475143)
.