소수 찾기.python

Haks.·2025년 1월 6일
0

Study

목록 보기
38/65

문제 설명

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

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

제한 조건
n은 2이상 1000000이하의 자연수입니다.

입출력 예
n	result
10	4
5	3

풀이 :

def solution(n):
    count = 0
    for i in range(2,n+1):
        check = 0
        for j in range(2,int(i**0.5)+1):
            if i % j == 0:
                check += 1
                break
        if check == 0 :
            count += 1
    return count

에라토스테네스의 체 알고리즘이 존재한다,

def solution(n):
    num=set(range(2,n+1)) # 2부터 n까지 모든숫자가 소수라 가정하고 시작

    for i in range(2,n+1):
        if i in num: # i 가 여전히 소수로 남아있다면
            num-=set(range(2*i,n+1,i)) # i 의 배수를 모두 제거
    return len(num)

0개의 댓글

관련 채용 정보