2013-10-11 202 views
0

我在這裏是初學者,這個代碼應該在理論上工作,歡呼你真棒傢伙幫助我!歐拉3解決方案,爲什麼?

的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 
+0

問題是? (請詳細描述您期望看到的內容以及您實際看到的內容) –

+1

問題是您的代碼超慢。找到一種方法來減少計算。 –

回答

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] 
相關問題