L=[]
def Prime(N):
a=0
for i in range(2,N):
if N%i==0:
a+=1
if a>0:
return False
else:
return True
def PrimesList(N):
if N==2:
L.append(2)
elif Prime(N):
L.append(N)
return PrimesList(N-1)
else:
return PrimesList(N-1)
L.reverse()
print L
如果我使用它一次,它會給出正確的答案。但L正在全球環境中得到拯救。使用遞歸時,如何將其放入循環內?這個問題對於大多數人來說可能是基本的,但我對Python很陌生。我應該打印的素數,直到N.使用遞歸打印素數直到N
寫入的代碼不會運行 - 例如,第5行上的a = 0需要縮進。 –
爲什麼你想要使用遞歸?只需使用一個簡單的循環。順便說一句,你的'Prime'功能可以變得更加高效。由於縮進錯誤,很難確切地知道你想要做什麼,但是1)只需要測試,直到找到n的第一個因子; 2)如果n不是素數,那麼它必須有一個因子<= sqrt(n)。 –
另外,請修復您的縮進。通常的Python約定是對每個縮進級別使用4個空格。 –