문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
문제 풀이
N개의 수가 주어졌을 때 소수가 몇 개인지 찾는 문제 입니다.
소수란, 1과 자기 자신만을 약수로 갖는 수 입니다.
따라서 주어진 수를 하나씩 확인하며
소수인지 아닌지 판별해주었습니다.
1은 소수가 아니므로 주어진 수가 1보다 크다면
2부터 주어진 수보다 1 작은 수까지 나눈 나머지를 구해주었습니다.
만약 나머지가 0이라면 다른 약수가 존재한다는 것입니다.
따라서 check 변수를 False로 만들어주어 소수가 아님을 표시해주었습니다.
만약 check가 True라면 소수라는 것이므로 개수를 세어주었습니다.
위 과정을 모두 반복한 뒤 개수를 출력하면 소수의 개수를 할 수 있습니다.
My Code
n = int(input()) # 주어진 수의 개수
nums = list(map(int,input().split())) # 주어진 수
count = 0 # 소수의 개수를 셀 변수
for i in nums:
check = True # 소수인지 판별할 변수
if i > 1: # 주어진 수가 1보다 크면
for j in range(2, i): # 주어진 수보다 작은 수들로
if i % j == 0: # 나눈 나머지가 0이라면
check = False # 소수가 아니므로 False
if check: # True이면 소수이므로
count += 1 # 개수 세어줌
print(count)
'백준(Python) 풀이' 카테고리의 다른 글
백준 6588번. 골드바흐의 추측 (Python / 파이썬) (0) | 2022.04.29 |
---|---|
백준 1929번. 소수 구하기 (Python / 파이썬) (0) | 2022.04.29 |
백준 2609번. 최대공약수와 최소공배수 (Python / 파이썬) (0) | 2022.04.29 |
백준 17425번. 약수의 합 (Python / 파이썬) (0) | 2022.04.29 |
백준 17427번. 약수의 합 2 (Python / 파이썬) (0) | 2022.04.29 |
댓글