항상 규칙을 찾는 게 어려운 것 같다.
수학 문제를 풀었는데, 소수이면 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 |