簡體   English   中英

在遞歸 def python 中打印行素數

[英]print row prime number in recursion def python

嗨,你們能幫我在 python 中制作數字列表素數,但沒有 for 循環,或者在內部或外部僅使用遞歸 function

這是帶有 def 遞歸的 mycode,你們能幫我改成在 def 遞歸中打印 2-limit 嗎?

def is_prime(n, div=2):

if div> n/2.0: return True

if n% div == 0:
    return False
else:
    div+=1
    return is_prime(n,div)

但這需要外部 def 打印所有數字 2-100

#The program:
for i in range(2,100,1):
if is_prime(i):
    print(i)

如何更改外部def中的for,只需

limit = int(input("input limit prime = )
print(is_prime(limit,2)

我的意思是,如何在沒有循環的情況下在 def 中使用遞歸打印 2-limit,而在 def 之外。 我很困惑如何從中制作遞歸 function 謝謝

如果您的目標是在沒有外部循環的情況下對您的 function 執行 recusion,這是一個解決方案......

def is_prime(n, max_n, div=2):

    if n> max_n: return False

    if div > n / 2.0:
        print(n)
        return is_prime(n+1,max_n)

    if n % div == 0:
        return is_prime(n + 1, max_n)
    else:

        return is_prime(n , max_n,div+1)# forgot to increment div and not increment n so we can runit through the function again

is_prime(2, 100)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM