728x90
반응형
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12921 |
코딩테스트 연습 - 소수 찾기
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상
programmers.co.kr
에라토스테네스의 체만 안다면 금방 풀 문제다! 제곱근을 구해준 후 그 범위 내에서 해당 수를 제외한 그 수의 배수들은 모두 True->False로 바꿔주고 result에 추가해주면 소수만 구할 수 있다!
이전에는 직접 소수를 하나하나 구했지만 에라토스테네스의 체를 사용하니 매우 간단하다,, 시간도 덜 걸린다!!
백준에서는 소수 문제 응용이 시간초과가 걸려 조금 다르게 풀었다,,
def solution(n):
result=[]
s=[True]*(n+1)
m=int(n**0.5) #제곱근 구하기
for i in range(2,m+1):
if s[i]==True:
for j in range(i+i,n+1,i): #배수는 모두 False로 바꿔주도록..!
s[j]=False
for i in range(2,n+1):
if s[i]==True:
result.append(i)
return len(result)
에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 수학에서 에라토스테네스의 체는 소수(소수)를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[��
ko.wikipedia.org
->제가 이해하기 가장 쉬웠던 사이트입니다..!
728x90
반응형
'알고리즘이야기 > 프로그래머스_알고리즘_lv1' 카테고리의 다른 글
콜라츠 추측 (0) | 2020.05.17 |
---|---|
시저 암호 (0) | 2020.05.17 |
서울에서 김서방 찾기 (0) | 2020.05.16 |
모의고사 (0) | 2020.05.16 |
문자열 내 p와 y의 개수 (0) | 2020.05.11 |
댓글