본문 바로가기
알고리즘이야기/프로그래머스_알고리즘_lv1

소수 찾기

by 효우너 2020. 5. 16.
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)

 

 


 

 

https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4

 

에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 수학에서 에라토스테네스의 체는 소수(소수)를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[��

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

댓글