πŸ“– Algorithm/πŸ“ λ°±μ€€

Kotlin 🍬 λ°±μ€€ 9단계 :: 11653 번

λ²ŒκΏ€μ˜€μ†Œλ¦¬πŸ¦‘ 2023. 5. 20. 04:08
λ°˜μ‘ν˜•

μ†ŒμΈμˆ˜λΆ„ν•΄

문제   |

  μ •μˆ˜ N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, μ†ŒμΈμˆ˜λΆ„ν•΄ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

μž…λ ₯   |

  μ²«μ§Έ 쀄에 μ •μˆ˜ N (1 ≤ N ≤ 10,000,000)이 주어진닀.

 

좜λ ₯   |

  N의 μ†ŒμΈμˆ˜λΆ„ν•΄ κ²°κ³Όλ₯Ό ν•œ 쀄에 ν•˜λ‚˜μ”© μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 좜λ ₯ν•œλ‹€. N이 1인 경우 아무것도 좜λ ₯ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

 

풀이  |

  μž…λ ₯ 받은 수λ₯Ό 2둜 λ‚˜λˆ„κΈ° μ‹œμž‘ν•˜λ©΄μ„œ 0으둜 λ‚˜λˆ„μ–΄ 떨어지지 μ•ŠμœΌλ©΄ 1μ”© 더해쀀닀. μž…λ ₯받은 수의 λͺ«μ΄ 1이 λ λ•ŒκΉŒμ§€ λ‚˜λˆ„μ—ˆλ˜ 수λ₯Ό 좜λ ₯ν•œλ‹€.

 

 

λ‹΅μ•ˆ  |

fun main() {
    var N = readLine()!!.toInt()
    val sb = StringBuilder()
    var num = 2
    
    while (N > 1) {
        if (N % num == 0) {
            sb.append("$num\n")
            N /= num
        } else {
            num++
        }
    }
    
    print(sb)
}
λ°˜μ‘ν˜•