일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- HTTP
- 2018 KAKAO BLIND RECRUITMENT
- 최단경로
- 백준
- java
- 문자열
- BFS
- algorithm
- applicationeventpublisher
- 2981
- 소수
- 탐욕법
- 코딩테스트
- Spring
- Greedy
- Python
- counting elements
- springboot
- 라이브템플릿
- spring security
- 파이썬
- codility
- 프로그래머스
- brute force
- Dijkstra
- 알고리즘
- beandefinitionstoreexception
- error
- API
- javascript
Archives
- Today
- Total
Altiora Petamus
소수 구하기 (에라토스테네스의 체) 본문
🤔생각해보기
문제는 간단하다. 에라토스테네스의 체를 사용해서 풀면 된다.
개인적으로 소수 구하는 문제에서 자주 쓰는 방법은 제곱근까지만 약수의 여부를 검증해서 O(logN)의 시간 복잡도로 구하는 것이다.
에라토스테네스의 체는 다량의 소수를 한 번에 판별할 때 쓰면 좋은 방식으로 자세한 내용은 다음을 참고하자.
m, n = map(int, input().split())
a = [False, False] + [True] * (n - 1)
prime = []
for i in range(2, n + 1):
if a[i]:
prime.append(i)
# range의 3번째 인자 i는 i만큼 건너뛰면서 루프를 진행하게 한다.
for j in range(2 * i, n + 1, i):
a[j] = False
for num in prime:
if num >= m:
print(num)
'1day-1algorithm' 카테고리의 다른 글
통계학 (0) | 2021.06.22 |
---|---|
토마토 (0) | 2021.06.19 |
Odd Occurrences In Array (0) | 2021.06.18 |
터렛 (0) | 2021.06.17 |
네 번째 점 (0) | 2021.06.16 |