반응형
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제 입력
4
1 3 5 7
예제 출력
3
풀이
최대 100개 이하의 1000 이하 자연수가 주어진다.
성능을 크게 요하지 않는 문제이므로, 최적화는 신경 쓰지 않았다.
소수는 2 이상의 숫자 중 자신과 1 만을 약수로 두는 수를 의미한다.
따라서, N을 소수로 판별하는 법은 N을 (여기서 N은 N>1) 2 ~ N-1 로 차례로 나눌 때
한 번도 나누어지지 않는다면 소수라고 판별할 수 있다.
a=int(input())
b=list(map(int,input().split()))
count=0
for i in range(a):
if b[i] < 2:
continue # 2 이하, 즉 1이면 예외처리
for j in range(2, b[i]):
if b[i]%j == 0:
break
else: # for 문이 break으로 인해 끊어지지 않는다면 카운트
count+=1
print(count)
반응형
'알고리즘 연습 > 수학, 정수론, 기하' 카테고리의 다른 글
[백준 11653] 기본 수학 2 - 소인수분해 (0) | 2021.05.27 |
---|---|
[백준 2581] 기본 수학 2 - 소수 (0) | 2021.05.27 |
[백준 1011] 기본수학 1 - Fly me to the Alpha Centauri (0) | 2021.05.26 |
[백준 2839] 기본 수학 1 - 설탕 배달 (0) | 2021.05.26 |
[백준 2775] 기본 수학 1 - 부녀회장이 될테야 (0) | 2021.05.26 |