문제 링크 : https://www.acmicpc.net/problem/1978
풀이
처음엔 단순하게 에라토스테네스의 체 방식으로 풀어서는 시간 초과가 날 수 있을거 같았으나 문제 분류에 에라토스테네스의 체라고 적혀있어서 시도해보았더니 제한 시간 내에 통과할 수 있었다.
n = int(input())
count = 0 # 소수가 아닐 경우를 count
arr = list(map(int, input().split()))
for num in arr:
if num == 1: # 1은 소수가 아님
count += 1 # 소수가 아니면 count
else:
for div in range(2, num):
if num % div == 0: # 2부터 (자기자신-1)까지 한 번이라도 나누어 떨어지면 소수가 아님
count += 1 # 소수가 아니면 count
break
print(n - count) # 전체 경우에서 소수가 아닌 경우의 수를 빼면 소수인 경우의 수가 나옴
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
(Python) 백준 7568번 - 덩치 (0) | 2022.12.28 |
---|---|
(Python) 백준 2751번 - 수 정렬하기 2 (0) | 2022.12.27 |
(Python) 백준 1436번 - 영화감독 숌 (0) | 2022.12.25 |
(Python) 백준 1181번 - 단어 정렬 (0) | 2022.12.24 |
(Python) 백준 10989번 - 수 정렬하기 3 (0) | 2022.12.20 |