백준 문제풀이

[백준 1978번 문제] 소수 찾기

eunda_coding 2022. 7. 29. 16:53

이번 문제는 입력한 숫자에서 소수가 몇개인지를 출력하는 문제이다.

먼저 이 문제를 풀기위해서 어떤 자연수가 소수인지 아닌지를 판별하는 조건이 있다.

 

<소수의 조건>

1. 1보다 큰 수

2. n보다 작은 어떠한 수로 나누었을 때 나머지가 0이되면 합성수가 된다.

import sys
input = sys.stdin.readline

n = int(input())
num_list = list(map(int,input().split()))


prime = 0
# print(num_list)

for i in num_list:
    error = 0
    if i > 1:
        for j in range(2, i+1):
            if i % j == 0:
                error += 1
                # print("error" , error)
        if error == 1:
            prime += 1
    
print(prime)

먼저 입력받을 수의 갯수를 입력받아서 리스트 형태로 num_list에 저장한다.

그리고 소수의 갯수를 셀 prime 변수를 선언하고 for문을 통해서 리스트 안에 숫자가 1보다 크고 해당 숫자보다 작은 수들로 나눈 나머지가 0이 될 경우를 error 변수에 카운트한다.

만약 error가 1이면 소수 갯수도 같이 카운트해준다.