이번 문제는 입력한 숫자에서 소수가 몇개인지를 출력하는 문제이다.
먼저 이 문제를 풀기위해서 어떤 자연수가 소수인지 아닌지를 판별하는 조건이 있다.
<소수의 조건>
1. 1보다 큰 수
2. n보다 작은 어떠한 수로 나누었을 때 나머지가 0이되면 합성수가 된다.
import sys
input = sys.stdin.readline
n = int(input())
num_list = list(map(int,input().split()))
prime = 0
# print(num_list)
for i in num_list:
error = 0
if i > 1:
for j in range(2, i+1):
if i % j == 0:
error += 1
# print("error" , error)
if error == 1:
prime += 1
print(prime)
먼저 입력받을 수의 갯수를 입력받아서 리스트 형태로 num_list에 저장한다.
그리고 소수의 갯수를 셀 prime 변수를 선언하고 for문을 통해서 리스트 안에 숫자가 1보다 크고 해당 숫자보다 작은 수들로 나눈 나머지가 0이 될 경우를 error 변수에 카운트한다.
만약 error가 1이면 소수 갯수도 같이 카운트해준다.
'백준 문제풀이' 카테고리의 다른 글
[백준 11653번 문제] 소인수분해 (0) | 2022.08.03 |
---|---|
[백준 2581번 문제] 소수 (0) | 2022.08.02 |
[백준 10989번 문제] 수 정렬하기 3 (0) | 2022.07.29 |
[백준 10815번 문제] 숫자카드 (0) | 2022.05.20 |
[백준 11650번 문제] 좌표 정렬하기 (0) | 2022.05.19 |