문제설명
숫자들을 입력받아서 그 숫자들 중 소수가 몇개 있는지 출력하는 문제입니다.
작동 순서
1. 입력받을 숫자의 개수를 입력받습니다.
2. 소수인지 판별할 숫자들을 입력받습니다.
3. 입력받은 숫자들을 1부터 자기자신까지 나누어보며 약수를 찾습니다.
4. 약수를 찾거나 자기 자신과 나누는 수가 같아지면 반복문이 종료되고 나누는 수가 자기자신과 같으면 소수로 판단하고 소수 배열에 추가합니다.
5. 소수배열의 길이를 출력합니다.
소스코드
import sys
n = int(sys.stdin.readline())
num = list(map(int, sys.stdin.readline().split()))
prime = []
for i in range(n):
if num[i] == 1:
continue
now = 1
while now < num[i]:
now += 1
if num[i] % now == 0:
break
if now == num[i]:
prime.append(num[i])
print(len(prime))
후기
그리 복잡하지 않은 문제였고 소수를 판별하는 방법만 알면 쉽게 풀 수 있는 문제였던것 같습니다.