#64. 백준 1978번 문제 풀이: 소수 찾기 문제 원본 보기
주어진 수 N개 중 소수가 몇 개인지 출력하는 프로그램을 작성하시오. 입력: 첫 줄에 수의 개수 N. N은 100이하, 둘째 줄에 N개의 수. 수는 1,000 이하. 출력: 주어진 수들 중 소수의 개수를 출력.
입력/출력
--입력--
4
1 3 5 7
--출력--
3
문제풀이+해설
소수는 1과 자기자신으로만 나누어지는 1보다 큰 정수이다.
예) 2, 3, 5, 7, ..

소수를 판단하는 루틴은 다음과 같이 구현할 수 있다.
--
주어진 수를 n이라 하자. 
루프 ( i=2 부터 n-1 까지):
 만약 n%i 나누어 떨어지면 소수가 아니다. 빠져나옴
루프 끝
--
code sol.
N = int(input())
# 숫자 개수를 입력받아 정수형으로 대입
count = 0 # 소수 개수 카운트
ns = list(map(int, input().split()))
# 공백으로 구분된 숫자들을 입력받아 정수형으로 만들고, 리스트 형식으로 넘겨줌
for n in ns: # 숫자에서 하나씩 n에 넘겨주며 루프
  so = True # 소수확인용 변수
  if n == 1: so = False # 1은 소수가 아니므로 별도 처리.
  for i in range(2, n): # 2부터 n-1까지 i로 전달하고 루프
    if n % i == 0: # 다른 수로 나누어 떨어지면 소수가 아님
      so = False # 소수가 아님
      break # 소수가 아니므로 확인 중지
  if so == True: # 소수이면 
    count += 1 # 카운트 +1
    
print(count) # 소수 개수 출력
© 코드솔 - CodeSol. All Rights Reserved.