Algorithm


Problem Name: 650. 2 Keys Keyboard

There is only one character 'A' on the screen of a notepad. You can perform one of two operations on this notepad for each step:

  • Copy All: You can copy all the characters present on the screen (a partial copy is not allowed).
  • Paste: You can paste the characters which are copied last time.

Given an integer n, return the minimum number of operations to get the character 'A' exactly n times on the screen.

 

Example 1:

Input: n = 3
Output: 3
Explanation: Initially, we have one character 'A'.
In step 1, we use Copy All operation.
In step 2, we use Paste operation to get 'AA'.
In step 3, we use Paste operation to get 'AAA'.

Example 2:

Input: n = 1
Output: 0

 

Constraints:

  • 1 <= n <= 1000
 

Code Examples

#1 Code Example with Javascript Programming

Code - Javascript Programming


const minSteps = function(n) {
  let res = 0
  for (let i = 2; i  < = n; i++) {
    while (n % i === 0) {
      res += i
      n /= i
    }
  }
  return res
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
n = 3

Output

x
+
cmd
3

#2 Code Example with Python Programming

Code - Python Programming


class Solution:
    def minSteps(self, n):
        cur, copy, steps = 1, 0, 0
        while cur != n:
            if copy < cur and not (n - cur) % cur:
                copy = cur
            else:
                cur += copy
            steps += 1
        return steps
Copy The Code & Try With Live Editor

Input

x
+
cmd
n = 3

Output

x
+
cmd
3
Advertisements

Demonstration


Previous
#649 Leetcode Dota2 Senate Solution in C, C++, Java, JavaScript, Python, C# Leetcode
Next
#652 Leetcode Find Duplicate Subtrees Solution in C, C++, Java, JavaScript, Python, C# Leetcode