728x90
소수(Prime Number): 2보다 큰 자연수 중에서 1과 자기 자신을 제외한 자연수로 나누어떨어지지 않는 자연수
# 소수 판별 함수
def is_prime_number(x):
# 2부터 (x-1)까지의 모든 수를 확인하며
for i in range(2, x):
# x가 해당 수로 나누어떨어진다면
if x % i == 0:
return False # 소수가 아님
return True # 소수임
print(is_prime_number(4)) # >> Fasle
print(is_prime_number(7)) # >> True
# 개선된 소수 판별 알고리즘
import math
# 소수 판별 함수
def is_prime_number(x):
# 2부터 x의 제곱근까지의 모든 수를 확인하며
for i in range(2, int(math.sqrt(x)) + 1):
# x가 해당 수로 나누어떨어진다면
if x % i == 0:
return False # 소수가 아님
return True # 소수임
print(is_prime_number(4)) # >> False
print(is_prime_number(7)) # >> True
728x90
'Programming > Algorithm' 카테고리의 다른 글
[Algorithm] 투 포인터 (0) | 2021.09.15 |
---|---|
[Algorithm] 에라토스테네스의 체 (0) | 2021.09.15 |
[Algorithm] 위상 정렬 (0) | 2021.09.15 |
[Algorithm] 신장 트리(최소 신장 트리, 크루스칼 알고리즘) (0) | 2021.09.15 |
[Algorithm] 서로소 집합 (0) | 2021.09.15 |