# optimizing fact: It is enough to evaluate the square root of a given number # in order to determine if that number is prime. # Reference: David M. Burton - Elementary Number Theory-McGraw-Hill Higher Education (2010) # page 44, THE SIEVE OF ERATOSTHENES def prime_numbers(x): # an optimizing fact exists here in terms of time complexity square_root = int(x**(1/2)) count = 0 for i in range(2, square_root+1): if prime_test(i): if x % i == 0: count+=1 if count == 0: return True else:return False def prime_test(x): # simply determines if the number is prime count = 0 for i in range(1, x+1): if x % i == 0: count+=1 if count == 2: return True else:return False #test: for i in range(500, 600): if prime_numbers(i) == True: print(i)