728x90
import sys

candidate_count = int(sys.stdin.readline())

def is_prime(n):
    if n == 1:
        return False
    if n <= 3:
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i + 2) == 0:
            return False
        else:
            i += 6
    return True

candidates = [int(x) for x in sys.stdin.readline().split()]
prime_count = 0
for candidate in candidates:
    if is_prime(candidate):
        prime_count += 1
print(prime_count)
  • 포인트
    • while 문 안에 소수찾는 로직이 중요
      • 제곱이 n보다 작은 자연수이면서 6으로 나눴을 때 나머지가 1, 5인 것만 확인
728x90

'Algorithm-Problems > 백준' 카테고리의 다른 글

[백준][2178] 미로 탐색  (0) 2022.05.08
[백준][2170] 선 긋기  (0) 2022.05.08
[백준][1934] 최소공배수  (0) 2022.05.08
[백준][1929] 소수 구하기  (0) 2022.05.05
[백준][1759] 암호 만들기  (0) 2022.02.09

+ Recent posts