I’m not stuck on this assignment, but I was wondering if there was a better /more straight forward solution.
For example, I think I used too many loops in this function to avoid exceptions.
I believe there should be an easier way to do this assignment and although my codes work it should not be the most efficient way.
Here is my code:
def is_prime(x): if x >= 0: for i in range (2, x+3): # because I wanted to make sure I wouldn't have a problem with an "null" range when x = [0,1,2] if x != i: if x % i == 0 or x == 1 : return False break else: return True else: return False
I also thought about limiting the range to the square root of x (since if the number is prime, it should not be dividable by the numbers smaller than the square root of x) but I’m wondering if it’s helpful and actually increases the efficiency of the program.
(I want to replace the first couple of lines with the following code : )
from math import sqrt def is_prime(x): if x >= 0: sqrt_x = int(sqrt(x)) for i in range (2,sqrt_x+3):