我必须找出数字(N)是否是质数,不允许使用递归。我试过将使用for循环的常用代码转换为递归代码,但它的行为不同。此函数包含在另一个函数中,该函数是另一个函数的一部分。只应使用和传递参数a和N
这是我的功能。a=2
def is_prime(a,N):
prime = True
if N <=1:
return
else:
if a >= N:
return
else:
if N == 2:
prime = True
print(N)
return
elif (N % a) == 0:
prime = False
return is_prime(a+1,N)
else:
prime = True
print(N)
return
我相信虫子就在这里。elif (N % a) == 0:
prime = False
return is_prime(a+1,N)
else:
prime = True
print(N)
这是我试图转换的代码。if num > 1:
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
else:
print(num,"is not a prime number")