[그 외]/ㄴ (코테연습 : 파이썬 ver)
[프로그래머스] 소수 찾기 (파이썬)
__hyeon2__
2021. 6. 17. 18:36
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12921
코딩테스트 연습 - 소수 찾기
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상
programmers.co.kr
<나의 풀이>
def solution(n):
answer = 0
#소수인지 체크하는 리스트 : 0과 1은 소수가 아니므로 처음부터 False로 한다.
check_list = [False,False] + [True]*(n-1)
# 소수의 배수는 소수가 아니라는 것을 이용해 소수의 배수는 False 처리 해준다.
for i in range(2,n+1) :
if check_list[i] :
answer += 1
for j in range(2*i,n+1,i):
check_list[j] = False
return answer
에라토스테네스의 체로 구한 소수찾기 코드
<다른 사람의 풀이>
def solution(n):
num=set(range(2,n+1))
for i in range(2,n+1):
if i in num:
num-=set(range(2*i,n+1,i))
return len(num)
# <배운점>
# => 에라토스테네스의 체를 더 간결하게 표현한 것
728x90
반응형