본문 바로가기
2022-3/1일1코딩

[BOJ] 1978 python

by 이망고_ 2022. 11. 30.

항상 규칙을 찾는 게 어려운 것 같다.

 

수학 문제를 풀었는데, 소수이면 cnt += 1 해주는 문제이다.

 

소수란, 1과 자기 자신을 약수로 갖는 수를 말한다.

그 외의 숫자는 합성수라고 불린다.

 

소수를 쭉 나열해 보자면, 1 2 3 5 7 9 11 13 17 19 23 27 .. 등으로 나열된다.

1은 소수가 아니고, 2를 제외하면 소수는 모두 홀수라는 점을 알 수 있다.

 

이 점을 유의하여, 소수 판별 함수를 짜준다

n = int(input())
sosu = list(map(int, input().split()))

def prime(num):
    if num ==1 :
        return False
    elif num ==2: # 유일한 짝수
        return True
    for i in range(2, num): # 소수는 홀수 3 5 7 9 11 13 ..
        if num%i == 0: # 짝수인 경우 false 
            return False
    return True # true 만 세어줌
cnt = 0
for i in sosu:
    if prime(i): # prime i가 true 이면, 
        cnt += 1
print(cnt)

'2022-3 > 1일1코딩' 카테고리의 다른 글

[BOJ] 11650 python  (0) 2022.12.07
[BOJ] 1208 Counter 내장함수  (0) 2022.12.06
[BOJ] 10989 python  (0) 2022.11.29
[BOJ] 1193 python  (0) 2022.11.29
[BOJ] 10809 python  (0) 2022.11.16