소수 : 자기 자신이랑 1이랑 약수를 지니고 있는 수
1은 소수가 아니고,
다른 수들이 소수인지 아닌지를 판별하기 위해서는 2부터 하나씩 수를 키워 나눠떨어지는 지 아닌지를 확인해봐야 한다.
#소수 찾기
n = int(input())
m = list(map(int, input().split()))
count = 0 #소수의 개수
for i in m:
cnt = 0
if i == 1: #소수가 아님
continue #아래 코드를 실행하지 않고 건너뜀!!! #?또는 cnt +=1을 해준다.
for j in range(2, i): #2부터 i-1까지 차례대로 나누기
if i%j == 0: #나머지가 0이면 소수가 아님!
cnt += 1
if cnt == 0: #나머지가 한 번도 0이 아닐 경우엔 소수
count += 1
print(count)
이전에 한 번 풀어본 적이 있었던 문제였는데, 예전에는 소수인지 아닌지를 어떻게 판별해주어야 하는 지를 몰라서 헤맸었다. 수를 하나씩 키워서 나눠떨어지는 순간 소수가 아님을 판단하는 것도 코드를 짜는 것을 어려워했었다.
그래도 한 번 풀어봤던 문제라고 어떻게 풀어야 했는 지 기억이 나서 수월하게 해결이 되어서 다행이다.!
추가로, 하나 더 추가.
#소수 찾기
n = int(input())
num = list(map(int, input().split()))
count = 0 #소수의 개수
def prime(n): #소수인지 아닌지
cnt = 0
if n == 1: #1은 소수가 아니다
return False
for i in range(2, n): #2부터 n-1까지 나눠보기
if n%i == 0: #나머지가 0이면 소수가 아님
cnt +=1
if cnt ==0: #한 번도 나머지가 0이지 않았다면 소수!
return True
else:
return False
for i in num:
if prime(i) == True:
count += 1
print(count)
반응형