🎨 μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체

경이·2022λ…„ 1μ›” 9일
0
post-thumbnail

🎨 μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체

  • κ³ λŒ€ 그리슀의 μˆ˜ν•™μž μ—λΌν† μŠ€ν…Œλ„€μŠ€κ°€ λ§Œλ“€μ–΄ λ‚Έ μ†Œμˆ˜λ₯Ό μ°ΎλŠ” 방법.
  • 이 방법은 마치 체둜 μΉ˜λ“―μ΄ 수λ₯Ό κ±ΈλŸ¬λ‚Έλ‹€κ³  ν•˜μ—¬ 'μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체' 라고 λΆ€λ₯Έλ‹€.

🎨 μ•Œκ³ λ¦¬μ¦˜

2λΆ€ν„° μ†Œμˆ˜λ₯Ό κ΅¬ν•˜κ³ μž ν•˜λŠ” κ΅¬κ°„μ˜ λͺ¨λ“  수λ₯Ό λ‚˜μ—΄ν•œλ‹€. κ·Έλ¦Όμ—μ„œ νšŒμƒ‰ μ‚¬κ°ν˜•μœΌλ‘œ 두λ₯Έ μˆ˜λ“€μ΄ 여기에 ν•΄λ‹Ήν•œλ‹€.
2λŠ” μ†Œμˆ˜μ΄λ―€λ‘œ 였λ₯Έμͺ½μ— 2λ₯Ό μ“΄λ‹€. (빨간색)
자기 μžμ‹ μ„ μ œμ™Έν•œ 2의 배수λ₯Ό λͺ¨λ‘ μ§€μš΄λ‹€.
λ‚¨μ•„μžˆλŠ” 수 κ°€μš΄λ° 3은 μ†Œμˆ˜μ΄λ―€λ‘œ 였λ₯Έμͺ½μ— 3을 μ“΄λ‹€. (μ΄ˆλ‘μƒ‰)
자기 μžμ‹ μ„ μ œμ™Έν•œ 3의 배수λ₯Ό λͺ¨λ‘ μ§€μš΄λ‹€.
λ‚¨μ•„μžˆλŠ” 수 κ°€μš΄λ° 5λŠ” μ†Œμˆ˜μ΄λ―€λ‘œ 였λ₯Έμͺ½μ— 5λ₯Ό μ“΄λ‹€. (νŒŒλž€μƒ‰)
자기 μžμ‹ μ„ μ œμ™Έν•œ 5의 배수λ₯Ό λͺ¨λ‘ μ§€μš΄λ‹€.
λ‚¨μ•„μžˆλŠ” 수 κ°€μš΄λ° 7은 μ†Œμˆ˜μ΄λ―€λ‘œ 였λ₯Έμͺ½μ— 7을 μ“΄λ‹€. (λ…Έλž€μƒ‰)
자기 μžμ‹ μ„ μ œμ™Έν•œ 7의 배수λ₯Ό λͺ¨λ‘ μ§€μš΄λ‹€.
μœ„μ˜ 과정을 λ°˜λ³΅ν•˜λ©΄ κ΅¬ν•˜λŠ” κ΅¬κ°„μ˜ λͺ¨λ“  μ†Œμˆ˜κ°€ λ‚¨λŠ”λ‹€.
그림의 경우, 11^2>120μ΄λ―€λ‘œ 11보닀 μž‘μ€ 수의 λ°°μˆ˜λ“€λ§Œ μ§€μ›Œλ„ μΆ©λΆ„ν•˜λ‹€. 즉, 120보닀 μž‘κ±°λ‚˜ 같은 수 κ°€μš΄λ° 2, 3, 5, 7의 배수λ₯Ό μ§€μš°κ³  λ‚¨λŠ” μˆ˜λŠ” λͺ¨λ‘ μ†Œμˆ˜μ΄λ‹€.


🎨 μ†ŒμŠ€ μ½”λ“œ(python)

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)

🎨 참고

https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4#cite_note-1

profile
μ΄μ‚¬μ€‘μž…λ‹ˆλ‹€!🌟https://velog.io/@devkyoung2

0개의 λŒ“κΈ€