[백준] 1978번 소수 찾기

오혜수·2022년 3월 12일
0

코딩 테스트

목록 보기
22/61

링크 : 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)

0개의 댓글