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인 것만 확인
- while 문 안에 소수찾는 로직이 중요
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 |