문제
주어진 N개의 수 중 소수의 수 출력하기
N<=100, 각각의 수<=1000
코드
import sys
n = int(sys.stdin.readline())
numbers = list(map(int, sys.stdin.readline().split()))
cnt = 0
for num in numbers:
prime_number = True
# 주어진 수가 1일 경우 소수가 아니므로 고려하지 않고 넘어간다.
if num < 2:
continue
else:
# 주어진 수를 2부터 n-1까지 나누어보고, 나누어 떨어지면 소수가 아니라고 판단한다.
for i in range(2, num-1):
if num % i == 0:
prime_number = False
break
# 소수일 경우 cnt 추가
if prime_number == True:
cnt += 1
print(cnt)
풀이
소수(Prime number)는 1과 자기자신 외에 다른 수로 나누어 떨어지지 않는 수이다.
따라서 2, 3, 5, 7, 11, 13,,, 등등은 소수가 된다.
수(n)를 2부터 n-1까지 나누어봤을 때 나누어떨어지는 수가 하나라도 있으면 소수가 아니다.
'👩🏻💻 Front-end > 👾 Algorithm' 카테고리의 다른 글
백준 11653 - 소인수분해 (Python) (0) | 2022.05.10 |
---|---|
백준 2581 - 소수 (Python) (0) | 2022.05.09 |
백준 2839 - 설탕 배달 (Python) (0) | 2022.05.08 |
백준 2775 - 부녀회장이 될테야 (Python) (0) | 2022.05.08 |
백준 10250 - ACM 호텔 (Python) (0) | 2022.05.08 |