[Bronze II] 소수 찾기 - 1978
성능 요약
메모리: 31120 KB, 시간: 44 ms
분류
소수 판정, 정수론, 수학
제출 일자
2023년 12월 5일 21:55:11
문제 설명
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
n = int(input())
li = list(map(int, input().split()))
if 1 in li:
li.remove(1)
result = 0
for l in li:
count = []
for i in range(1, l+1):
if l % i == 0:
count.append(i)
if len(count) == 2:
result += 1
print(result)
풀이
소수는 1과 자기 자신만을 가지고 있는 수이다. 여기서 1은 소수가 아니다.
그렇기 때문에 입력 데이터 중 1이 있으면 1을 제거하고 남은 리스트를 반복하여 소수들을 구하고 소수의 개수가 2이면 개수를 증가시켰다.
다른 풀이로 2부터 n까지 나눈 나머지가 0인 개수가 1개이면 소수이기 때문에 result 변수를 1 증가하면 더 좋은 풀이가 될 것 같다.
'코딩테스트 > Algorithm' 카테고리의 다른 글
[백준 python 14215] 세 막대 (0) | 2023.12.14 |
---|---|
[백준 11653] 소인수분해 (0) | 2023.12.14 |
[백준 2292] 벌집 (0) | 2023.12.14 |
[백준 2903] 중앙 이동 알고리즘 (0) | 2023.12.14 |
[백준 10798] 세로읽기 (0) | 2023.12.14 |