[백준] 1978번 소수 찾기 | 파이썬 Python

문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

 

입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

 

출력

주어진 수들 중 소수의 개수를 출력한다.

 

예제

 

나의 풀이

N = int(input())
num_list = list(map(int, input().split()))
cnt = len(num_list)

for num in num_list:
    if num == 1:
        cnt -= 1
        continue
        
    for i in range(2, num):
        if num%i == 0:
            cnt -= 1
            break

print(cnt)
  • 입력값으로 받은 숫자의 갯수를 값으로 가지는 `cnt`를 만들어서 소수가 아닌 수가 있을 때마다 `-1`을 한다.
  • 1과 자기 자신을 제외한 `range(2, i)`를 범위로 잡았는데, 이 경우에 `1`은 계산되지 않기 때문에 `i == 1`인 경우만 if문으로 예외 처리를 했다.