๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

BOJ11653: ์†Œ์ธ์ˆ˜๋ถ„ํ•ด (Python) ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ ํ’€์ด

BOJ11653: ์†Œ์ธ์ˆ˜๋ถ„ํ•ด (Python)

adorableco 2023. 9. 3. 14:03
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

 

11653๋ฒˆ: ์†Œ์ธ์ˆ˜๋ถ„ํ•ด

์ฒซ์งธ ์ค„์— ์ •์ˆ˜ N (1 ≤ N ≤ 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

์ฝ”๋“œ

n = int(input())

if n != 1:
    while n>1:
        for i in range(2,n+1):
            if n%i==0:
                print(i)
                n = n//i
                break

 

ํ’€์ด

n(์†Œ์ธ์ˆ˜๋ถ„ํ•ด ํ•  ์ •์ˆ˜ N) ์—์„œ i ๋ฅผ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋‚˜๋ˆˆ๋‹ค. n์—์„œ i๋ฅผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ ๊ฒฝ์šฐ i๊ฐ€ n์„ ๊ตฌ์„ฑํ•˜๋Š” ์†Œ์ธ์ˆ˜์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ i๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  n์€ i๋ฅผ ๋‚˜๋ˆˆ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ i๋ฅผ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•œ๋‹ค. 

 

โœ… ์ฒ˜์Œ์— ์ด๋ ‡๊ฒŒ ํ’€ ์ƒ๊ฐ์„ ๋ชปํ•˜๊ณ  n์—์„œ ์†Œ์ˆ˜๋“ค๋งŒ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ๊ฐ’๋“ค์„ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ •๋‹ต๋ณด๋‹ค ๋ณต์žกํ•œ ์ƒ๊ฐ์ด์—ˆ๊ณ  ๋ฐฑ์ค€์—์„  ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ์‹คํŒจํ•˜์˜€๋‹ค. ์ •๋‹ต์ฒ˜๋Ÿผ ๊ตณ์ด ์†Œ์ˆ˜๋งŒ ๋ฝ‘์•„์„œ ๋‚˜๋ˆ„์ง€ ์•Š์•„๋„ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋‚˜๋ˆ ์งˆ ๊ฐ’๋“ค์€ ๋‹ค ๋‚˜๋ˆ ์ง€๋Š” ๊ฒƒ์ด๋ฏ€๋กœ (ex. for๋ฌธ์—์„œ i๊ฐ€ 4์— ๋„๋‹ฌํ•  ๊ฒฝ์šฐ ์›๋ž˜ n์ด 4๋กœ ๋‚˜๋ˆ ์ง€๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ• ์ง€๋ผ๋„ ์•ž์„  for๋ฌธ์—์„œ ๋‘ ๋ฒˆ์˜ 2๋กœ ๋‚˜๋ˆ ์กŒ์„ ๊ฒƒ์ด๊ธฐ๋•Œ๋ฌธ์— if n%i==0: ์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.) ๋ฌธ์ œ ์—†์ด ์†Œ์ธ์ˆ˜๋“ค๋งŒ ์ถœ๋ ฅ์ด ๋œ๋‹ค. 

๋ฐ˜์‘ํ˜•