Doby's Lab

백준 1978번: 소수 찾기 (Python) 본문

PS/BOJ

백준 1978번: 소수 찾기 (Python)

도비(Doby) 2023. 10. 24. 16:37

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

 

1978번: 소수 찾기

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

www.acmicpc.net


Level: Bronze II

Solved By: Sieve of Eratosthenes

 

파이썬으로 에라토스테네스의 체를 구현해보았습니다.

from sys import stdin

N = stdin.readline()

def getPrime(n):
    prime = []
    visited = [False for _ in range(0, n + 1)]
    visited[1] = True
    for i in range(2, n + 1):
        if visited[i] == True:
            continue
        for j in range(i+i, n + 1, i):
            visited[j] = True
    
    for i in range(2, n + 1):
        if not visited[i]:
            prime.append(i)
    return visited
    
prime_li = getPrime(1000)

li = [*map(int, stdin.readline().split())]

res = 0
for v in li:
    # print(v)
    if prime_li[v] == False:
        res += 1
        
print(res)

 

 

728x90