import Foundation
func largestPrimeFactor(_ n: Int) -> Int {
var num = n
var div = 2
var maxPFact = -1
while num != 0 {
if num % div != 0 {
div += 1
} else {
maxPFact = num
num /= div // Integer division
if num == 1 {
break
}
}
}
return maxPFact
}
print(largestPrimeFactor(124)) // 2 x 2 x 31
print(largestPrimeFactor(288)) // 2 x 2 x 2 x 2 x 2 x 3 x 3
print(largestPrimeFactor(1288)) // 2 x 2 x 2 x 7 x 23
print(largestPrimeFactor(100000000)) // 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5
/*
run:
31
3
23
5
*/