Python – подсчитать количество простых делителей без использования диапазона ⇐ Python

Программы на Python
Anonymous
Python – подсчитать количество простых делителей без использования диапазона

Сообщение Anonymous »

Мне нужно написать функцию, которая подсчитывает общее количество простых делителей данного положительного целого числа 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

Вернуться в «Python»