반응형
https://www.acmicpc.net/problem/1978 문제풀이
코드
import sys
sys.stdin.readline()
nums = list(map(int,sys.stdin.readline().split()))
answer = 0
for num in nums :
if num == 1 : continue
for i in range(2,int(num**.5)+1) :
if num%i ==0 :
break
else : answer +=1
print(answer)
코드 해설
간단하게 각 숫자마다 소수인지 판별하는데 1은 소수가 아니니 바로 넘기고 소수 판별 알고리즘을 돌리면 된다.
여기서 중요한 점은 소수판별을 할 때 2부터 제곱근까지만 확인을 하는 것이다.
제곱근까지만 확인을 해도 해당 숫자가 소수인지 확인할 수 있기 때문에 최대한 for문을 줄여 효율성을 높인 것!!!!
반응형
'알고리즘 테스트 > 백준' 카테고리의 다른 글
백준 11653 : 소인수분해 (파이썬) (0) | 2022.01.25 |
---|---|
백준 9020 : 골드바흐의 추측 (파이썬) (0) | 2022.01.25 |
백준 1011 : Fly me to the Alpha Centauri (파이썬) (0) | 2022.01.25 |
백준 2839 : 설탕 배달(파이썬) (0) | 2022.01.24 |
백준 2775 - 부녀회장이 될테야(파이썬) (0) | 2022.01.24 |