Swift 역시 동적 계획법 풀이만 싣도록 하겠다. 대부분의 DP 답들이 그렇듯이 허무하리만치 간단한 코드다.
timeit{
let limit = 100_0000
var s = Array(0...limit)
for a in 2...limit where s[a] == a {
stride(from:a, through: limit, by: a).forEach { s[$0] -= s[$0] / a }
}
print(s.reduce(0, +) - 1)
}