백준 11653번: 소인수분해 (Swift)

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

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

인수분해만 하면 되는 간단한 문제. 2로 계속나누다가 2로 나누지 못할경우 3, 3으로 나누지 못할경우 4.... 반복해서 나누는 수가 나눠지는 수보다 커지면 반복을 종료한다.

import Foundation

var input = Int(readLine()!)!
var num = 2
func calc(input: Int){
    var inputNum = input
    while inputNum%num < num {
        if inputNum == 1 {
            break
        }
        if inputNum%num == 0 {
            inputNum = inputNum/num
            print(num)
        }else{
            num += 1
        }
    }
}
calc(input: input)