좌충우돌 개발자의 길

백준 알고리즘 | 1978번 (소수 찾기) | 파이썬 본문

CODING TEST/백준

백준 알고리즘 | 1978번 (소수 찾기) | 파이썬

sustronaut 2021. 7. 14. 21:48

1978번 (소수 찾기)*

  • 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
  • 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
  • 주어진 수들 중 소수의 개수를 출력한다.
n = int(input())
a = list(map(int, input().split()))

not_sosu = 0
t = 0
total = 0

while (t < n):
    num = a[t]
    for j in range(2, num):
        if(num % j == 0):
            not_sosu += 1
    if(not_sosu > 0):
        total += 1
    t += 1
    if(num == 1):
        total += 1
    not_sosu = 0

print(n-total)

해석

  • 소수는 1과 자신으로만 나눌 수 있다는 것에서 착안하여 코드 작성
  • 즉, 2~(자신-1)가 자신을 나누었을 때, 떨어지는 수가 있으면 소수가 아니다.
  • 참고 사이트 : https://m.blog.naver.com/happynut/221844121110