2λΆν° μμλ₯Ό ꡬνκ³ μ νλ ꡬκ°μ λͺ¨λ μλ₯Ό λμ΄νλ€. κ·Έλ¦Όμμ νμ μ¬κ°νμΌλ‘ λλ₯Έ μλ€μ΄ μ¬κΈ°μ ν΄λΉνλ€.
2λ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 2λ₯Ό μ΄λ€. (λΉ¨κ°μ)
μκΈ° μμ μ μ μΈν 2μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
λ¨μμλ μ κ°μ΄λ° 3μ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 3μ μ΄λ€. (μ΄λ‘μ)
μκΈ° μμ μ μ μΈν 3μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
λ¨μμλ μ κ°μ΄λ° 5λ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 5λ₯Ό μ΄λ€. (νλμ)
μκΈ° μμ μ μ μΈν 5μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
λ¨μμλ μ κ°μ΄λ° 7μ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 7μ μ΄λ€. (λ Έλμ)
μκΈ° μμ μ μ μΈν 7μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
μμ κ³Όμ μ λ°λ³΅νλ©΄ ꡬνλ ꡬκ°μ λͺ¨λ μμκ° λ¨λλ€.
κ·Έλ¦Όμ κ²½μ°, 11^2>120μ΄λ―λ‘ 11λ³΄λ€ μμ μμ λ°°μλ€λ§ μ§μλ μΆ©λΆνλ€. μ¦, 120λ³΄λ€ μκ±°λ κ°μ μ κ°μ΄λ° 2, 3, 5, 7μ λ°°μλ₯Ό μ§μ°κ³ λ¨λ μλ λͺ¨λ μμμ΄λ€.
arr = [True] * (n+1)
for i in range(2, int(n ** 0.5)+1):
if arr[i] == True:
for j in range(i+i, n+1, i):
arr[j] = False
for i in range(2, n+1):
if arr[i]:
print(i)