문제
브론즈 2 - https://www.acmicpc.net/problem/1978
코드 구현
정답 코드
n = int(input())
nums = list(map(int, input().split()))
counts = []
def is_prime_num(x, counts):
prime_count = 0
if(x <= 1):
return 0
for i in range(2, x):
if (x % i == 0):
return 0
else:
pass
prime_count += 1
counts.append(prime_count)
return counts
for i in range(n):
is_prime_num(nums[i], counts)
ans = 0
for i in counts:
ans += i
print(ans)
풀이
- 소수 판별 함수를 만들어서 입력받는 개수 n만큼 돌려보는 형식으로 구현
- 소수는 1과 자기 자신만을 약수로 갖는 수다.
- 소수 판별 함수는 다음과 같은 기준으로 소수인지 아닌지 판별한다.
- 1 이하면 소수가 아니다.
- 2부터 자기 자신에 해당하는 수 전까지 모두 나눠봤을 때 한번이라도 나누어떨어지게 된다면 소수가 아니다. (약수가 존재한다는 뜻)