【发布时间】:2020-02-07 02:30:39
【问题描述】:
我必须编写一个函数来计算给定正整数 n 的素数除数的总数。由于我一周前刚开始学习python,所以我不允许使用for循环和范围。以下是我目前所拥有的:
def count_prime_divisors(n):
return num_of_divisors(n, 1)
def num_of_divisors(n, i):
if i > n:
return 0
if n % i == 0 and num_of_divisors(i, 1) == 2:
return 1 + num_of_divisors(n, i+1)
else:
return num_of_divisors(n, i+1)
所以我知道超出最大递归深度错误发生在这一行if n % i == 0 and num_of_divisors(i, 1) == 2,但我不知道如何检查除数是否为素数,以便函数可以正常工作。也许我应该写另一个辅助函数?有人可以帮我弄这个吗?非常感谢任何帮助:(谢谢!
【问题讨论】:
-
素数唯一数的素数数你要数吗?
-
不允许使用
range或一般循环吗? -
我必须计算唯一素数除数的数量
-
@Euripus 检查我发布的答案。