범위 내의 소수를 구하는 가장 빠른 방법은 '에라토스테네스의 체'로 알려져 있다.
에라토스테네스의 체는 2부터 n의 제곱근까지 배수를 제거하는 방식이다.
풀이를 찾아보다가 매우 신선한 코드를 발견해 기록하고자 한다.
import math
n, m = map(int, input().split())
for i in range(n, m + 1):
if i == 1:
continue
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
break
else:
print(i)
나는 if else문 사이에 for문을 저렇게 넣을 수 있는지 처음 알았다;
보고 코드 되게 똑똑하게 짰다고 생각했다.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
백준 > 9012 괄호 (0) | 2024.03.28 |
---|---|
백준 > 1920 수 찾기 (0) | 2024.03.10 |
백준 > 10989 수 정렬하기 3 (0) | 2024.02.29 |
백준 > 11656 접미사 배열 (0) | 2024.02.24 |
백준 > 1764 듣보잡 (0) | 2024.02.23 |