본문 바로가기
Solution_/프로그래머스

[프로그래머스] 소수 찾기

by 낭람_ 2020. 7. 5.
반응형

문제 설명

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.

소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)

 

제한 조건

  • n은 2이상 1000000이하의 자연수입니다.

입출력 예

n result
10 4
5 3

입출력 예 설명

입출력 예 #1
1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환

입출력 예 #2
1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환

 

[python]

def solution(n):
    prime = [False, False] +[True]*(n-1)
    for i in range(2, n+1) :
        if prime[i] :
            for j in range(i*2, n+1, i) :
                prime[j] = False
    return prime.count(True)

 

흠.. 처음에 대충 짯더니 시간초과랑 효율성테스트에서 떨어져 에라토스테네스의 체를 이용해서 풀어봤다..

 

에라토스테네스의 체(c언어)

 

[알고리즘] 에라토스테네스의 체 #c언어

수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 알고리즘 설명 . 1. 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당 2. 2는 �

security-nanglam.tistory.com

그냥 전에 포스팅한거를 보고 풀어봤는데 0과 1 대신 True와 False를 넣었다.

반응형

댓글