2014-09-19 27 views
-4

我想寫一個函數來確定一個數是否爲素數。我已經拿出了以下解決方案 ,但不雅,但無法弄清楚如何編寫它。如何用循環劃分? (Python)

我想要做以下事情:取數x,並將其除以小於自身的每個數字。如果任何解決方案等於零,print 'Not prime.'如果沒有解決等於零,打印「Prime.'

換句話說,我希望函數執行以下操作:

x % (x - 1) = 
x % (x - 2) = 
x % (x - 3) = 
x % (x - 4) = 
etc... 

下面是據我已經能夠得到:

def prime_num(x): 
    p = x - 1 
    p = p - 1 
    L = (x % (p)) 
    while p > 0: 
     return L 
+0

感謝您的鏈接,jonrsharpe。我知道這個問題有很多解決方案,不過,我正在嘗試編寫自己的解決方案來學習Python。我仍然不太清楚如何編寫循環或聲明,所以我希望通過弄清楚如何編寫我提出的解決方案,我將逐步提高對Python的理解。我很感激幫助。再次感謝! – 2014-09-20 19:17:32

回答

0

Wikipedia provides一個可能的素性檢查在Python

def is_prime(n): 
    if n <= 3: 
     return n >= 2 
    if n % 2 == 0 or n % 3 == 0: 
     return False 
    for i in range(5, int(n ** 0.5) + 1, 6): 
     if n % i == 0 or n % (i + 2) == 0: 
      return False 
    return True 
+0

感謝您的解決方案,抗Veeranna。我知道這個問題有很多解決方案,不過,我正在嘗試編寫自己的解決方案來學習Python。我仍然不太清楚如何編寫循環或聲明,所以我希望通過弄清楚如何編寫我提出的解決方案,我將逐步提高對Python的理解。我很感激幫助。再次感謝! – 2014-09-20 19:18:47