繁体   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