문제
주어진 수 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문으로 예외 처리를 했다.