문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
정답비율
48.291%
N = int(input())
lst = list(map(int, input().split()))
count = 0
for i in lst :
if i == 1 :
continue
elif i == 2 :
count += 1
else :
for j in range(2,i) :
if i % j == 0 :
break
elif j == i-1 :
count += 1
print(count)
제한 시간이 있어서 반복문을 써도 될까 잠시 고민했지만, 1000이하의 자연수라는 제한은 컴퓨터에게 1초도 안걸릴 것 같아서 for구문으로 풀었다.
1의 경우 count를 올리지 않았고 2의 경우 count를 올리도록 하였다, 그 외의 숫자는 2부터 자기 자신 직전 숫자까지 나눠서 나머지가 0이되는지 체크하였고, 0이 되면 바로 반복문을 탈출 시켰고, 자기 자신 직전숫자까지 왔음에도 나머지가 0이 되지 않은 경우는 count를 1올려주었다.
참고
'Problem Solving > Baekjoon Online Judge' 카테고리의 다른 글
<수학2> 1929번 소수 구하기 with 파이썬 (0) | 2020.12.28 |
---|---|
<수학2> 2581번 소수 with 파이썬 (0) | 2020.12.25 |
<수학1> 1011번 Fly me to the Alpha Centauri with 파이썬 (0) | 2020.12.21 |
<수학1> 2775번 부녀회장이 될테야 with 파이썬 (0) | 2020.12.18 |
<수학1> 10250번 ACM 호텔 with 파이썬 (0) | 2020.12.16 |