def is_prime_number(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
return True
print(is_prime_number(6))
print(is_prime_number(11))
실행 결과
False
True
위 함수의 경우 2부터 X-1 까지의 모든 자연수에 대하여 연산을 수행.
모든 약수는 중앙을 기준으로 짝을 지어 이루는 것을 알 수 있다.
이에 따라 2부터 n-1 까지의 모든 자연수에 대하여 연산을 수행하지 않고, n^(1/2) 즉, n의 제곱근 까지의 모든 자연수에 대하여 연산을 수행한다.
def is_prime_number(n):
if n == 1:
return False
for x in range(2, int(n**(1/2)) + 1):
if n % x == 0:
return False
return True
print(is_prime_number(4))
print(is_prime_number(11))
실행 결과
False
True
위 함수의 경우 2부터 n^(1/2) + 1 까지의 자연수에 대하여 연산을 수행