오일러 프로젝트 72

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)
}