Мне нужно написать функцию, которая подсчитывает общее количество простых делителей данного положительного целого числа 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)
Итак, я знаю, что ошибка превышения максимальной глубины рекурсии возникает в этой строке, если n % i == 0 и num_of_divisors(i, 1) == 2 но я не знаю, как проверить, является ли делитель простым, чтобы функция могла работать правильно. Может быть, мне стоит написать еще одну вспомогательную функцию? Может ли кто-нибудь помочь мне с этим? Любая помощь очень ценится

Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/599 ... sing-range