650.2-keys-keyboard.go 236 B

12345678910111213
  1. func minSteps(n int) int {
  2. dp := make([]int, n+1)
  3. for i := 2; i <= n; i++ {
  4. dp[i] = i
  5. for j := 2; j*j <= i; j++ {
  6. if i%j == 0 {
  7. dp[i] = dp[i/j] + j
  8. break // Smaller j can make dp[i] smaller.
  9. }
  10. }
  11. }
  12. return dp[n]
  13. }