문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
# 해결법
입력받은 n개의 숫자 모두 소수라고 가정하고 소수가 아닐시 하나씩 빼는 방법으로 구현했다.
0과 1은 소수가 아니므로 n -= 1 을 해주고, 2는 소수이므로 넘어간다.
반복문을 하나 더 만드는데 2에서 num_list 원소 i - 1 까지 숫자를 더해가면서 나누었을때, 나머지가 0이라면 1과 자기자신만으로 나눌 수 있다는 소수가 아니므로 n -= 1 을 해주고 break 한다.
# 나의 코드
n = int(input())
num_list = list(map(int, input().split()))
for i in num_list:
if i < 2:
n -= 1
elif i == 2:
continue
else:
for j in range(2,i):
if i % j == 0:
n -= 1
break
print(n)
'Python' 카테고리의 다른 글
백준 2581 - 소수 (파이썬) (0) | 2021.04.07 |
---|---|
백준 1292 - 쉽게 푸는 문제 (파이썬) (0) | 2021.04.05 |
백준 2609 - 최대공약수와 최소공배수 (파이썬) (0) | 2021.04.04 |
백준 2309 - 일곱 난쟁이 (파이썬) (0) | 2021.04.04 |
백준 10870 - 피보나치 수 5 (파이썬) (0) | 2021.04.04 |