[백준] 1987: 소수 찾기 - 파이썬[python]

다인·2024년 8월 19일

백준

목록 보기
38/112
post-thumbnail

문제를 풀고 구글에 코드를 검색해보니 for문을 처음부터 끝까지 다 돌아서 나누어 떨어지는 게 있는지 없는지를 확인하고 count를 더하더라. 그렇게 하면 시간이 좀 오래 걸릴 것 같아서 나는 나누어 떨어지자마자 for문을 나가버리고 count를 빼주는 방식으로 풀었다.
그리고 전 문제를 풀면서 소수를 찾을 때 1~N까지 모두 도는 것보다 1~N/2까지 도는 게 낫다는 것을 배웠다. 어차피 N은 자기 자신으로 나누어 떨어질 것이고, 자신을 제외한 가능한 가장 큰 소수는 N/2이기 때문이다.

코드

N = int(input())
count = N
nums = list(map(int, input().split()))

for num in nums:
    if num == 1:
        count -= 1
    for i in range(2, num//2 + 1):
        if num % i == 0:
            count -= 1
            break

print(count)

결과

0개의 댓글