본문 바로가기
👩🏻‍💻 Front-end/👾 Algorithm

백준 1978 - 소수 찾기 (Python)

by su-no 2022. 5. 9.

문제

주어진 N개의 수 중 소수의 수 출력하기

N<=100, 각각의 수<=1000

 

코드

import sys

n = int(sys.stdin.readline())
numbers = list(map(int, sys.stdin.readline().split()))

cnt = 0
for num in numbers:
    prime_number = True
    
    # 주어진 수가 1일 경우 소수가 아니므로 고려하지 않고 넘어간다.
    if num < 2:
        continue
        
    else:
    # 주어진 수를 2부터 n-1까지 나누어보고, 나누어 떨어지면 소수가 아니라고 판단한다.
        for i in range(2, num-1):
            if num % i == 0:
                prime_number = False
                break
    # 소수일 경우 cnt 추가
    if prime_number == True:
        cnt += 1
        
print(cnt)

 

풀이

소수(Prime number)는 1과 자기자신 외에 다른 수로 나누어 떨어지지 않는 수이다.

따라서 2, 3, 5, 7, 11, 13,,, 등등은 소수가 된다.

수(n)를 2부터 n-1까지 나누어봤을 때 나누어떨어지는 수가 하나라도 있으면 소수가 아니다.