반응형

소수 찾기

-풀이

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))
            print(set(range(2*i,n+1,i)))
    
    return len(num)

-풀이 설명

한 가지 수가 아닌 1부터 입력받은 숫자 n사이의 소수의 개수를 다 반환해야 해서 엄청 오래 고민했었는데 결국 풀지 못하고 다른 사람의 풀이를 보고 풀게되었다.  집합 자료형인 set()함수를 사용하는 걸 보고 색달랐다. 먼저 num에 2에서 부터 n 까지의 수를 담고 거기서 소수가 아닌 수는 다 빼내어 num의 길이를 반환하는 방식으로 생각보다 간단하게 풀 수 있다는 것을 알게 되었다.

+ Recent posts