def isPrime(n):
if n<2: #1, 0 and all negative numbers are not prime
return False
elif n==2: #2 is prime but cannot be calculated with the formula below becuase of the range function
return True
else:
for i in range(2, n):
if (n % i) == 0: #if you can precisely divide a number by another number, it is not prime
return False
return True #if the progam dont return False and arrives here, it means it has checked all the numebrs smaller than n and nono of them divides n. So n is prime
def is_prime(n: int) -> bool:
"""Primality test using 6k+-1 optimization."""
import math
if n <= 3:
return n > 1
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i <= math.sqrt(n):
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True