[๋ฐฑ์ค€] 1929 ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ - ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

2024. 9. 15. 23:42ยท๐Ÿ’ป Algorithms/๋ฐฑ์ค€

[ ๋ฌธ์ œ๋งํฌ ]

https://www.acmicpc.net/problem/1929

 

๐Ÿšฉ ์กฐ๊ฑด

  1. ์ž…๋ ฅ์œผ๋กœ M๊ณผ N์ด ๋“ค์–ด์˜ด
  2. M์ด์ƒ N์ดํ•˜์˜ ์†Œ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ถœ๋ ฅํ•ด๋ผ

 

 

๐Ÿšฉ ์ ‘๊ทผ, ์‹œํ–‰์ฐฉ์˜ค

์ผ๋‹จ 2๊ฐ€ ์•„๋‹Œ ์ง์ˆ˜์ด๋ฉด ๋ฐฐ์ œํ•˜๊ณ .. ํ™€์ˆ˜๋Š” 3๋ถ€ํ„ฐ ๋‚˜๋ˆ ๊ฐ€๋ฉด์„œ ์†Œ์ˆ˜์ธ์ง€ ์ง์ ‘ ํ™•์ธ?

์ด๋Ÿฐ ๋‹จ์ˆœํ•œ ์ƒ๊ฐ์„ ํ–ˆ๋Š”๋ฐ ๋‹น์—ฐํžˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ๊ฒƒ ๊ฐ™์•˜๋‹ค..

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ํ’€์ด๋ฅผ ์ฐพ์•„๋ดค๋Š”๋ฐ, ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

 

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋Š” ์–ด๋–ค ์ •์ˆ˜ ์ดํ•˜์˜ ์†Œ์ˆ˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ, ์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•ฉ์„ฑ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์ ‘๊ทผ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

1. ์ •์ˆ˜ n์ด ์ฃผ์–ด์ง€๋ฉด, 2๋ถ€ํ„ฐ n๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜๊ฐ€ ์†Œ์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

# ์ •๋‹ต ์ถœ๋ ฅ ์‹œ ์ข€ ๋” ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด, 0๊ณผ 1์— ๋Œ€ํ•ด์„œ False๋กœ ์„ค์ •ํ•จ
is_prime = [False,False] + [True]*(N-1)

2. 2๋ฅผ ์†Œ์ˆ˜๋กœ ์ฑ„ํƒํ•˜๊ณ (=is_prime[2]๋ฅผ True๋กœ ๋‘ ), ๋‚˜๋จธ์ง€ 2์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์šด๋‹ค(=is_prime[2์˜ ๋ฐฐ์ˆ˜]๋ฅผ False๋กœ ๋‘ ).

3. ์ง€์›Œ์ง€์ง€ ์•Š์€ ์ˆ˜(=is_prime[num]์ด True) ์ค‘ ๊ฐ€์žฅ ์ž‘์€ 3์„ ์†Œ์ˆ˜๋กœ ์ฑ„ํƒํ•˜๊ณ , ๋‚˜๋จธ์ง€ 3์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์šด๋‹ค.

4. ์ง€์›Œ์ง€์ง€ ์•Š์€ ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ 5๋ฅผ ์†Œ์ˆ˜๋กœ ์ฑ„ํƒํ•˜๊ณ , ๋‚˜๋จธ์ง€ 5์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์šด๋‹ค.

5. ์œ„ ๊ณผ์ •์„ n์˜ ์ œ๊ณฑ๊ทผ์„ ๋‚ด๋ฆผํ•œ ์ˆ˜๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

for num in range(2, int(N**0.5)+1) :

- ์˜ˆ๋ฅผ ๋“ค์–ด 18์˜ ๊ฒฝ์šฐ, 1๊ณผ ์ž์‹ ์„ ์ œ์™ธํ•œ ์•ฝ์ˆ˜๋Š” {2, 3, 6, 9}์ด๊ณ  ์ œ๊ณฑ๊ทผ์€ 4.2์ธ๋ฐ, 4.2๋ณด๋‹ค ํฐ 6๊ณผ 9 ๊ฐ๊ฐ์˜ ์ง์ด ๋˜๋Š” ์•ฝ์ˆ˜ 3๊ณผ 2๋Š” 4.2๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์ œ๊ณฑ๊ทผ๋ณด๋‹ค ํฐ ์ˆ˜์— ๋Œ€ํ•ด์„œ๋Š” ์ฒด๋ฅผ ํ„ธ์–ด๋‚ผ ํ•„์š”๊ฐ€ ์—†๋‹ค.

- ๊ทผ๋ฐ ๋‹ค๋ฅธ ์ฝ”๋“œ๋“ค์„ ์‚ดํŽด๋ณด๋‹ˆ ๊ตณ์ด ์ œ๊ณฑ๊ทผ์„ ๊ณ ๋ คํ•ด์„œ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด๋„ ๋˜๊ธด ํ•˜๋Š” ๋“ฏ?

 

 

๐Ÿ’ป ์ฝ”๋“œ (Python)

# ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

M,N = map(int, input().split())
is_prime = [False, False] + [True]*(N-1)

for num in range(2, int(N**0.5)+1) :
    if is_prime[num]:
        for composite in range(2*num, N+1, num):
            is_prime[composite]=False

for i in range(M, N+1):
    if is_prime[i]:
        print(i)

'๐Ÿ’ป Algorithms > ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 11286 ์ ˆ๋Œ“๊ฐ’ ํž™ - ์šฐ์„ ์ˆœ์œ„ ํ, ํž™  (2) 2024.10.04
[๋ฐฑ์ค€] 1676 ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜ - ์ˆ˜ํ•™, ์ •์ˆ˜๋ก   (1) 2024.09.16
[๋ฐฑ์ค€] 12865 ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.09.01
[๋ฐฑ์ค€] 10844 ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.09.01
[๋ฐฑ์ค€] 11727 2xn ํƒ€์ผ๋ง2 - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.08.31
'๐Ÿ’ป Algorithms/๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 11286 ์ ˆ๋Œ“๊ฐ’ ํž™ - ์šฐ์„ ์ˆœ์œ„ ํ, ํž™
  • [๋ฐฑ์ค€] 1676 ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜ - ์ˆ˜ํ•™, ์ •์ˆ˜๋ก 
  • [๋ฐฑ์ค€] 12865 ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • [๋ฐฑ์ค€] 10844 ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
์ ๋„
์ ๋„
  • ์ ๋„
    ๋„์ 
    ์ ๋„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (30)
      • ๐Ÿ’ป Algorithms (28)
        • ๋ฐฑ์ค€ (22)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
      • ๐Ÿ”Ž Deep Learning (0)
      • ๐Ÿ’ฅ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (1)
      • ๐Ÿ•น Unity (1)
      • ๐Ÿฅ” ์ž‰ํ…… (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Blog
    • Github
    • Velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
์ ๋„
[๋ฐฑ์ค€] 1929 ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ - ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”