μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 | 31 |
- DP
- LIS
- λ°±μ€
- ν°μ€ν 리μ±λ¦°μ§
- λ³ν©μ λ ¬
- κ·Έλν
- λλΉμ°μ νμ
- λ°μ΄ν°λ² μ΄μ€
- μ€λΈμ
- μ°μ μμν
- DFS
- λμ κ³νλ²
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- BFS
- νμ΄μ¬
- μ λ ¬
- ꡬν
- νλ‘κ·Έλλ¨Έμ€
- db
- λμ ν©
- μκ³ λ¦¬μ¦
- μμꡬνκΈ°
- κΉμ΄μ°μ νμ
- μμνμ
- λ¨Έμ§μνΈ
- μλ£κ΅¬μ‘°
- 그리λ
- κ·Έλννμ
- SQL
- μν
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 1929λ²: μμ ꡬνκΈ° - C++ (+ μλΌν μ€ν λ€μ€μ 체) λ³Έλ¬Έ
[λ°±μ€] 1929λ²: μμ ꡬνκΈ° - C++ (+ μλΌν μ€ν λ€μ€μ 체)
.23 2021. 8. 18. 03:39λ¬Έμ
Mμ΄μ Nμ΄νμ μμλ₯Ό λͺ¨λ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ μμ°μ Mκ³Ό Nμ΄ λΉ μΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. (1 ≤ M ≤ N ≤ 1,000,000) Mμ΄μ Nμ΄νμ μμκ° νλ μ΄μ μλ μ λ ₯λ§ μ£Όμ΄μ§λ€.
μΆλ ₯
ν μ€μ νλμ©, μ¦κ°νλ μμλλ‘ μμλ₯Ό μΆλ ₯νλ€.
μμ 1978λ² μμ μ°ΎκΈ°μμ νμλ νΉμ μμ λν μμ νμ μ νμ₯νμ¬ νΉμ λ²μ λ΄μ μμλ₯Ό λͺ¨λ ꡬνλ μκ³ λ¦¬μ¦μΈ μλΌν μ€ν λ€μ€μ 체λ₯Ό μ΄μ©νμ¬ ν μ μλ λ¬Έμ μ΄λ€.
λ§μ΄ μ΄λ ΅μ§λ§, μλ¦¬κ° κ°λ¨νλ€. 2 μ΄μμ ꡬνκ³ μ νλ λ²μ λ΄μ μ‘΄μ¬νλ μμ°μλ₯Ό λͺ¨λ λμ΄ν λ€, 2μ λ°°μλΆν° 3μ λ°°μ, 4μ λ°°μ, ... λ± μ°¨λ‘λ‘ κ·Έ μμ λ°°μλ€μ μ§μλκ°λ€.
μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ΄ 2λΆν° 50κΉμ§μ λ²μ λ΄μ μ‘΄μ¬νλ μμλ₯Ό μλΌν μ€ν λ€μ€μ 체λ₯Ό μ΄μ©ν΄ ꡬν΄λ³΄λλ‘ νλ€.
1λ¨κ³ : 2λ₯Ό μ μΈν 2μ λ°°μλ₯Ό λͺ¨λ μ μΈνλ€.
2λ¨κ³ : 3μ μ μΈν 3μ λ°°μλ₯Ό λͺ¨λ μ μΈνλ€.
3λ¨κ³ : 4μ λ°°μλ μμ 1λ¨κ³μμ λͺ¨λ μ μΈλμμΌλ―λ‘, 5λ₯Ό μ μΈν 5μ λ°°μλ₯Ό λͺ¨λ μ μΈνλ€.
4λ¨κ³ : μμ λ¨κ³λ€κ³Ό λ§μ°¬κ°μ§λ‘ μμ§ μ§μμ§μ§ μμ 7μ λ°°μ, 11μ λ°°μ .. λ±μ μ§μλκ°κ² λλ©΄ μμ κ°μ΄ μ΅μ’ μ μΈ μμλ€μ΄ λ¨κ² λλ€.
λ°λΌμ 2μ 50 μ¬μ΄μ μ‘΄μ¬νλ μμλ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47μ΄λ€.
μ½λλ λ€μκ³Ό κ°λ€. 2λΆν° NκΉμ§μ λ°°μ΄μμ 0μΌλ‘ κΈ°λ‘λ κ°μ μΈλ±μ€κ° 곧 μμκ° λλ€. μλΌν μ€ν λ€μ€μ 체μ μκ°λ³΅μ‘λλ O(N log(log N))μΌλ‘ λ§€μ° λΉ λ₯΄κ² μλνλ€.
for(int i = 2; i * i <= N; i++) {
if(arr[i] == 0) continue; // μ΄λ―Έ μκ° μ§μμ§ κ²½μ° λμ΄κ°
for(int j = 2 * i; j <= N; j += i) {
if(arr[j] == 0) continue; // μμκ° μλ κ²½μ° λμ΄κ°
else arr[j] = 0; // μμλ₯Ό μ§μ
}
}
+ κΈ°λ³Έμ μΌλ‘ μλΌν μ€ν λ€μ€μ 체λ₯Ό μ΄μ©νμ¬ λ¬Έμ λ₯Ό νμλλ°, μκ° μ νμ΄ λλνκ² νΉμλ μΆμ΄ μμ ꡬν μμ νμ λ°©μμΌλ‘ νμ΄λ΄€λλ° ν΅κ³Όκ° λκΈ΄ νλ€.
μ½λ
#include <cstdio>
#include <vector>
using namespace std;
int main(void) {
int m, n;
scanf("%d %d", &m, &n);
vector<int> arr(n + 1, 0);
for(int i = 2; i <= n; i++) {
arr[i] = i;
}
for(int i = 2; i * i <= n; i++) {
if(arr[i] == 0) continue;
for(int j = 2 * i; j <= n; j += i) {
if(arr[j] == 0) continue;
else arr[j] = 0;
}
}
for(int i = m; i <= n; i++) {
if(arr[i] != 0) printf("%d\n", arr[i]);
}
return 0;
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 11653λ²: μμΈμλΆν΄ - C++ (0) | 2021.08.23 |
---|---|
[λ°±μ€] 6588λ²: 골λλ°νμ μΆμΈ‘ - C++ (0) | 2021.08.22 |
[λ°±μ€] 1978λ²: μμ μ°ΎκΈ° - C++ (0) | 2021.08.17 |
[λ°±μ€] 1934λ²: μ΅μ곡배μ - C++ (0) | 2021.08.16 |
[λ°±μ€] 2609λ²: μ΅λ곡μ½μμ μ΅μ곡배μ - C++ (0) | 2021.08.15 |