def isPrime(n):
if n < 2: return False
if n == 2: return True
if n & 1 == 0: return False
for x in range(3, int(n ** 0.5)+1, 2):
if n % x == 0:
return False
return True
def allPrime(n):
lastDigit = n % 10
rest = int(n / 10)
if not isPrime(lastDigit):
return False
if n > 10:
return allPrime(rest)
return True
print(allPrime(9777))
print(allPrime(773))
要做到这一点,你只需要提取最后一个数字,检查它是否是质数,然后继续剩下的数字。在
编写递归基本上由一个简单的例子和一个递归组成,在这个过程中,你把问题分解成一个更小的问题,直到你进入一个小的情况。在
因此,您需要做的是,找到不需要进一步递归的简单情况,并思考如何实现这一点:
如果我们有一个非素数,我们可以返回False,并且不进一步递归:
^{pr2}$琐碎部分只有一位数,因此非平凡部分是这个,我们在这里进行递归:
我们有一个例子,因为一个非素数而停止,我们有一个非平凡的例子 简单的情况也不需要递归,因为我们已经有了非素数的情况,我们只需要:
总结一下:
相关问题 更多 >
编程相关推荐