Problem Statement
- 1. If it's divisible by 3, divide it by 3.
- 2. If it's divisible by 2, divide it by 2.
- 3. Subtract 1.
Definition
- Class:
- DecreasingNumber
- Method:
- numberOfOperations
- Parameters:
- int
- Returns:
- int
- Method signature:
- int numberOfOperations(int n)
- (be sure your method is public)
Constraints
- n will be between 1 and 106, inclusive.
Examples
1
Returns: 0
We are already at number 1.
2
Returns: 1
Only divide it by 2.
3
Returns: 1
5
Returns: 3
First, substract 1. Then, divide by 2 twice. (Or substract 1 twice, and then divide by 3).
10
Returns: 3
First, substract 1. Then, divide by 3 twice.
13
Returns: 4
20
Returns: 4
133
Returns: 8
139
Returns: 8
8728
Returns: 14
14862
Returns: 14
27436
Returns: 14
33387
Returns: 16
48097
Returns: 15
57771
Returns: 17
66286
Returns: 16
175481
Returns: 19
176946
Returns: 16
293191
Returns: 19
381359
Returns: 19
422223
Returns: 18
475447
Returns: 18
481215
Returns: 17
486739
Returns: 19
538346
Returns: 19
545152
Returns: 21
597003
Returns: 21
601367
Returns: 21
602496
Returns: 18
645039
Returns: 20
652241
Returns: 20
672994
Returns: 21
768456
Returns: 17
770775
Returns: 20
817224
Returns: 20
883877
Returns: 20
939298
Returns: 21
950437
Returns: 19
962340
Returns: 17
1000000
Returns: 19
999999
Returns: 19
999998
Returns: 21
999997
Returns: 21
999996
Returns: 20
999995
Returns: 22
4
Returns: 2
6
Returns: 2
7
Returns: 3
8
Returns: 3
9
Returns: 2
531441
Returns: 12
524288
Returns: 19
933119
Returns: 30
933118
Returns: 29
466559
Returns: 28
995327
Returns: 28
311039
Returns: 27
995326
Returns: 27
155519
Returns: 26
995325
Returns: 26
155518
Returns: 25
999863
Returns: 25
77759
Returns: 24
999862
Returns: 24
51839
Returns: 23
999935
Returns: 23
839808
Returns: 15
28
Returns: 4
745
Returns: 10
16
Returns: 4
2931
Returns: 10