백준

백준-1978: 소수 찾기

기여워죽겠어 2024. 1. 28. 12:02

문제:

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

 

입력: 

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

 

출력:

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

 

예제 입력:

4

1  3  5  7

 

예제 출력:

7

 

풀이 코드:

import sys

N = int(input())
lis = list(map(int, sys.stdin.readline().strip().split(' ')))

cnt = 0
for i in lis:
    count = 0

    for j in range(1, i+1):
        if i % j == 0:
            count += 1

    if count == 2:
        cnt += 1

print(cnt)

 

해석:

1. 주어진 수를 입력받고 lis에 주어진 수를 공백으로 구분하여 모두 담는다.

2. 소수를 세기 위해 cnt값을 0으로 설정한다.

3. for문에서 lis값을 반복시키고 소수임을 확인하기 위해서 count값을 0으로 설정한다.

4. 다시 for문을 통해서 나눈 값이 0이면 count에 1씩 증가시켰다.

5. 만약 여기서 count값이 2이면 해당 값은 소수이므로 cnt값에다가 +1씩 추가하여 마지막에 출력하였다.