---
# System prepended metadata

title: Untitled

---

starting with printed string x, find the minimum number of operations required to print x n times if only 2 operations are allowed
- op1 - copy (copies everthing that is printed to copyspace)
- op2 - print (appends current copyspace to printed string) 


ex -
for n = 6
| steps     | op     | copyspace (after op) | printed string (after op) |
| --------  |------- | --------------------:| ------------------------: |
| 0 (start) |        |                      | x                         |
| 1         | copy   |   x                  | x                         |
| 2         | paste  |   x                  | xx                        |
| 3         | copy   |   xx                 | xx                        |
| 4         | paste  |   xx                 | xxxx                      |
| 5         | paste  |   xx                 | xxxxxx                    |

samples -
```haskell
f(1) = 0 -- noop
f(2) = 2 -- cp
f(3) = 3 -- cpp
f(4) = 4 -- cppp
f(6) = 5 -- cpcpp
f(9) = 6 -- cppcpp
```
