欧拉3解决方案,为什么?

时间:2013-10-11 23:00:23

标签: python

我是初学者,这段代码应该在理论上运作,为你们这些帮助我的人们欢呼!

13195的主要因素是5,7,13和29。

600851475143号码的最大主要因素是什么?

欧拉问题3

欧拉问题3

    def prime(n):
             for i in range(2,n-1):
    if n % i == 0:
        return False
    else:
        return True

         x = input("Enter a number plz")
         d = 0
         while x > 0:
         d = d + 1
         if x % d == 0:
          if prime(d) is True:
            print d

1 个答案:

答案 0 :(得分:0)

以下是对类似问题的回答: Largest prime factor of a number

更好的解决方案:

def prime_factors(n):
    """Returns all the prime factors of a positive integer"""
    factors = []
    d = 2
    while n > 1:
        while n % d == 0:
            factors.append(d)
            n /= d
        d = d + 1

    return factors


pfs = prime_factors(600851475143)
largest_prime_factor = max(pfs) # The largest element in the prime factor list
print pfs 
print largest_prime_factor

#output
[71, 839, 1471, 6857]

6857