728x90
문제 설명
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
풀이 과정
앞서 풀었던 문제에 비해 간단하게 풀 수 있었던 문제인것 같다. 우선 사용자로부터 입력받은 정수들을 리스트 'data'에 저장하고 리스트에 있는 각 정수 'x'에 대해 2부터 x까지 각 숫자를 i로 나누어 보면서 소수인지 확인하는 과정을 거친다. 이후 소수이면 count 변수를 1로 증가시키고 모든 정수에 대한 처리가 끝난다면 count 변수를 출력함으로써 주어진 수들 중 소수의 개수를 출력할 수 있다.
# 사용자로부터 정수 n을 입력받음
n = int(input())
# 사용자로부터 공백으로 구분된 정수들을 입력받아 리스트 data에 저장
data = list(map(int, input().split()))
# 소수의 개수를 저장하는 변수 count를 초기화
count = 0
# data 리스트에 있는 각 정수 x에 대해 반복
for x in data:
# 2부터 x까지의 각 숫자 i로 나누어보며 확인
for i in range(2, x+1):
# x를 i로 나눴을 때 나머지가 0이면 (즉, i가 x의 약수이면)
if x % i == 0:
# 만약 x와 i가 같다면 (즉, x 자체가 소수인 경우)
if x == i:
# 소수이므로 count를 1 증가
count += 1
# 루프를 탈출하여 다음 숫자로 넘어감
break
# 소수의 개수를 출력
print(count)
728x90
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ/Python] 9934번 문제풀이 (0) | 2023.11.08 |
---|---|
[BOJ/Python] 16236번 문제풀이 (0) | 2023.11.08 |
[BOJ/Python] 14938번 문제풀이 (1) | 2023.11.01 |
[BOJ/Python] 1520번 문제풀이 (0) | 2023.10.04 |
[BOJ/C] 14501번 문제풀이 (1) | 2023.10.04 |