링크 : https://www.acmicpc.net/problem/1978
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
array라는 리스트를 만들고, 그 곳에 소수를 판별할 수를 넣었다.
소수면 cnt에 +1을 했고, 소수가 아니면 +1을 하지 않았다.
소수 판별은 2부터 루트(x)+1까지를 나눠보며 하나라도 나눠지는게 있으면 소수가 아니라는 판단을 내렸다.
예를 들면,
만약 5라는 수를 판별한다고 해보자.
루트(5)+1은 3이니까 5%2, 5%3를 해본다. 둘 다 나누어 떨어지지지 않으니 5는 소수다.
1은 따로 처리해주었다.
import math
n = int(input())
array = list(map(int,input().split()))
cnt = 0
def prime_num(x):
global cnt
if x == 1:
return cnt
for j in range(2, int(math.sqrt(x))+1):
if x % j == 0:
return cnt
cnt += 1
for i in array:
prime_num(i)
print(cnt)