728x90
import math
n = 1000 # 2 ~ 1000 까지의 모든 소수
array = [True]*(n+1) # 아리스토테네스의 체
for i in range(2, int(math.sqrt(n))+1): # 제곱수까지만 확인한다
if array[i]:
j = 2
while i*j < n: # n 보다 작은 모든 i의 배수를 지운다
array[i*j] = False
j += 1
for i in range(2, n+1):
if array[i]:
print(i, end=" ")
728x90
'Algorithm (PS)' 카테고리의 다른 글
[leetcode] Longest Palindromic Substring / 투포인터 (0) | 2022.09.12 |
---|---|
프로그래머스 단어변환 & 백준 1963 소수경로 (DFS/BFS) 유사문제 정리 (0) | 2022.09.11 |
[leetcode] valid palindrome 125 (3) | 2022.09.05 |
[백준] 1806 부분합 in Python : 투 포인터 (0) | 2022.03.13 |
[백준] 2252 줄세우기 in python + 위상정렬(topology_sort) (0) | 2022.03.08 |