μμ(μλΌν μ€ν λ€μ€ 체)
π λ¬Έμ
μμ°μ Nμ΄ μ λ ₯λλ©΄ 1λΆν° NκΉμ§μ μμμ κ°μλ₯ΌμΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμΈμ.
λ§μ½ 20μ΄ μ λ ₯λλ©΄ 1λΆν° 20κΉμ§μ μμλ 2, 3, 5, 7, 11, 13, 17, 19λ‘ μ΄ 8κ°μ λλ€.
μ νμκ°μ 1μ΄μ λλ€.
β£ μ λ ₯μ€λͺ
첫 μ€μ μμ°μμ κ°μ N(2<=N<=200,000)μ΄ μ£Όμ΄μ§λλ€.
β£ μΆλ ₯μ€λͺ
첫 μ€μ μμμ κ°μλ₯Ό μΆλ ₯ν©λλ€.
β£ μ λ ₯μμ
20
β£ μΆλ ₯μμ
8
π§ νμ΄
λ보기
νμ΄ (μκ° μ΄κ³Ό)
# μ
λ ₯: 첫 μ€ - μμ°μμ κ°μ n
# μΆλ ₯: μμμ κ°μ μΆλ ₯
from math import sqrt # math ν¨ν€μ§μμ μ κ³±κ·Ό ꡬνλ sqrt λͺ¨λ λΆλ¬μ€κΈ°
n = int(input()) # μ μ n μ
λ ₯ λ° ν λΉ
cnt = [0] * (n+1) # n+1κ° λ§νΌμ 0μ λ΄λ 리μ€νΈ cnt ν λΉ
for i in range(2, int(sqrt(n))+1): # 2λΆν° nμ μ κ³±κ·Ό + 1κΉμ§ λ°λ³΅
for j in range(2, n+1): # 2λΆν° nκΉμ§ λ°λ³΅
if i != j and j % i == 0: # iμ jκ° μλ‘ λ€λ₯΄λ©΄μ, iλ₯Ό jλ‘ λλ λλ¨Έμ§κ° 0μΌ λ,
cnt[j] = 1 # cnt[j]μ κ°μ 1λ‘ λ³κ²½
print(cnt.count(0)-2) # cntμ 0μ κ°―μ - 2λ₯Ό μΆλ ₯ (cnt[0]κ³Ό cnt[1]μ 0κ³Ό 1μ΄κΈ° λλ¬Έμ λΉΌμ€μΌ ν¨)
λ€λ₯Έ μ¬λ νμ΄
# μμ(μλΌν μ€ν
λ€μ€μ 체)
n = int(input()) # μ μ n μ
λ ₯ λ° ν λΉ
ch = [0] * (n+1) # n+1κ° λ§νΌμ 0μ λ΄λ 리μ€νΈ ch ν λΉ
cnt = 0 # κ°―μ μΈκΈ° μν cnt ν λΉ
for i in range(2, n+1): # 2λΆν° nκΉμ§ λ°λ³΅
if ch[i] == 0: # ch[i] κ° 0μΌ λ,
cnt += 1 # cnt 1 λν΄μ£ΌκΈ°
for j in range(i, n+1, i): # iλΆν° nκΉμ§ iμ κ°κ²©μΌλ‘ (λ°°μλ€μ νμΈν μ μμ)
ch[j] = 1 # λ°°μμ ν΄λΉνλ jμΌ κ²½μ°, 1λ‘ ch[j] κ° λ³ν
print(cnt) # cnt κ° μΆλ ₯
'𧩠Algorithm > π¨ Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νμ΄μ¬ μκ³ λ¦¬μ¦] μ£Όμ¬μ κ²μ (0) | 2022.07.24 |
---|---|
[νμ΄μ¬ μκ³ λ¦¬μ¦] λ€μ§μ μμ (0) | 2022.07.24 |
[νμ΄μ¬ μκ³ λ¦¬μ¦] μλ¦Ώμμ ν© (0) | 2022.07.24 |
[νμ΄μ¬ μκ³ λ¦¬μ¦] μ λ€λ©΄μ²΄ (0) | 2022.07.24 |
[νμ΄μ¬ μκ³ λ¦¬μ¦] λνκ° (0) | 2022.07.24 |