알고리즘 연습/수학, 정수론, 기하

[백준 1978] 기본 수학 2 - 소수 찾기

김세진 2021. 5. 27. 22:13
반응형

문제

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

입력

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

출력

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

예제 입력

4

1 3 5 7

예제 출력

3

 

 

풀이

 

최대 100개 이하의 1000 이하 자연수가 주어진다.

 

성능을 크게 요하지 않는 문제이므로, 최적화는 신경 쓰지 않았다.

 

소수는 2 이상의 숫자 중 자신과 1 만을 약수로 두는 수를 의미한다.

 

따라서, N을 소수로 판별하는 법은 N을 (여기서 N은 N>1) 2 ~ N-1 로 차례로 나눌 때

 

한 번도 나누어지지 않는다면 소수라고 판별할 수 있다.

 

a=int(input())
b=list(map(int,input().split()))
count=0
for i in range(a):
    if b[i] < 2:
        continue		# 2 이하, 즉 1이면 예외처리
    for j in range(2, b[i]):
        if b[i]%j == 0:
            break
    else:		# for 문이 break으로 인해 끊어지지 않는다면 카운트
        count+=1
print(count)

 

반응형