I have this code:
def has_divisors(n, i=2): """ Check if a number is prime or not :param n: Number to check :param i: Increasing value that tries to divide :return: True if prime, False if not """ if n <= 1: return False if i + 1 == n: return True if n <= 2 and n > 0: return True if n % i == 0: return False return has_divisors(n, i + 1)
Which tell if a number is prime or not, problem is that it can check if a number is prime up to +- 1500 after that it enters into maximum recursion depth error. Does anyone has any idea how to make this code more efficient and get to higher numbers (I don't want a completely different code if possible, yes I know recursion is not a good idea for this function but I have to use it) Thank you!
997results in close to one thousand redundant checks of
n <= 1,
n <= 2, and
n > 0. With a better understanding of the exact constraints, more efficient solutions will be possible. \$\endgroup\$