본문 바로가기
백준 알고리즘(BOJ)

백준 알고리즘 1978 (소수 찾기) - python

by Think_why 2019. 10. 16.

[문제] 백준 알고리즘 1978 (소수 찾기) - python

https://www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

제목 그대로 주어진 배열에 소수가 몇 개 인지 찾는 문제이다.

 

배열(L)에 요소들을 리스트로 받고, 

1이 아닌 요소(i)를 하나씩 꺼내면서 2~ i-1까지 나눠지는 수가 없을 때만 센다.

나눠지는 수가 존재하면 더 이상 소수가 아니므로, 시간 낭비를 줄이기 위해 break 한다. 

플래그(check)를 이용하여 나눠지는 수가 있을 때만 세도록 했다.

 

[Code]

N = int(input())
L = list(map(int, input().split()))
cnt = 0
for i in L:
    if i != 1:
        check = True
        for j in range(2, i):
            if i % j == 0:
                check = False
                break
        if check:
            cnt += 1
print(cnt)
728x90

댓글