Algorithm/Baekjoon

[백준] (Swift) 11653번 - 소인수분해

감자 🥔 2022. 2. 28. 23:39
반응형

문제 링크

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

 

11653번: 소인수분해

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

www.acmicpc.net

 

내가 푼 풀이

  • 2부터 차근차근 나눠주면서 print 해줌
  • 범위는 숫자 num까지로 설정했음
  • 마지막에 1이 아닌경우 소수로 마무리 지어졌다는 뜻이므로, 마지막 소수도 출력해줌.
  • 굳이 정렬은 필요없음. 2부터 시작해서 가장 작은 소수부터 출력되게 됨
import Foundation

var num = Int(readLine()!)!
let n = Int(sqrt(Double(num)))

for i in stride(from: 2, to: num, by: 1) {
    while num % i == 0 {
        num /= i
        print(i)
    }
}


if num != 1 {
    print(num)
}

 

반응형