전역 변수 prime_list를 만들고 소수인 값을 몇 개 넣었다. 만약 prime_list에 있는 값이 들어온다면 소수로 판별하고 True를 반환한다.
prime_list에 없는 값이 들어온다면 2부터 n-1까지 나누면서 소수인지 아닌지 판별한다. n>19일 때만 소수 판별을 하는 이유는 prime_list에 2부터 19까지 소수를 넣었기 때문에, 19보다 작은 값이 들어온다면 무조건 소수가 아니게 된다.
prime_list = [2, 3, 5, 7, 11, 13, 17, 19]
def prime(n):
if n in prime_list:
return True
if n>19:
for i in range(2, n):
if n % i == 0:
return False
else:
return False
prime_list.append(n)
return True
'개발 > 알고리즘' 카테고리의 다른 글
[BOJ 10814] 나이순 정렬 - 파이썬, 람다 (0) | 2021.07.20 |
---|---|
[알고리즘] 최대공약수, 최소공배수 - 파이썬 (0) | 2021.06.24 |
[자료구조] 스택, 큐 구현 - 파이썬 deque (0) | 2021.06.24 |
[BOJ(백준) 10250] ACM호텔 - 파이썬 풀이 (0) | 2021.06.01 |
[BOJ(백준) 2292] 벌집 - 파이썬 풀이 (0) | 2021.06.01 |