Problem Statement
The Magic Diamonds are very strange. For any positive integer x you can use Transfer Magic to transfer x Magic Diamonds at once. However, if x is a prime number, the Magic Diamonds will disappear instead of getting transferred. You are not allowed to lose any of the Magic Diamonds, therefore you may never use Transfer Magic on a prime number of Magic Diamonds. Your task is to transfer all Magic Diamonds using Transfer Magic as few times as possible.
You are given a
Definition
- Class:
- MagicDiamonds
- Method:
- minimalTransfer
- Parameters:
- long
- Returns:
- long
- Method signature:
- long minimalTransfer(long n)
- (be sure your method is public)
Notes
- A positive integer x is a prime number if and only if it has exactly 2 divisors: 1 and x. Note that 1 is not a prime number.
- Your task can always be accomplished. For example, you can use Transfer Magic n times and transfer 1 Magic Diamond each time.
Constraints
- n will be between 1 and 1,000,000,000,000 (10^12), inclusive.
Examples
2
Returns: 2
We have to use Transfer Magic twice, each time we transfer 1 Magic Diamond.
4294967297
Returns: 1
We just need to use Transfer Magic once, because 4294967297 is not a prime. We have 4294967297 = 641 * 6700417.
2147483647
Returns: 2
This time n is a prime, so we have to use Transfer Magic at least twice. We have 2147483647 = 2147400000 + 83647 (83647 = 233 * 359, which is not a prime), thus the answer is 2.
1
Returns: 1
8566
Returns: 1
6308
Returns: 1
4081
Returns: 1
5680
Returns: 1
4427
Returns: 1
2739
Returns: 1
6181
Returns: 1
6274
Returns: 1
3601
Returns: 1
7506
Returns: 1
8951
Returns: 2
5345
Returns: 1
9621
Returns: 1
9300
Returns: 1
23
Returns: 2
720
Returns: 1
2151
Returns: 1
7854
Returns: 1
3607
Returns: 2
1881
Returns: 1
6076
Returns: 1
9369
Returns: 1
3853
Returns: 2
8229
Returns: 1
205
Returns: 1
980
Returns: 1
4197
Returns: 1
1460
Returns: 1
320020303
Returns: 2
1021932001
Returns: 1
1804873438
Returns: 1
625102087
Returns: 1
298989654
Returns: 1
713692516
Returns: 1
2019257625
Returns: 1
1567124116
Returns: 1
196044214
Returns: 1
436143805
Returns: 1
1906602942
Returns: 1
1651588877
Returns: 1
1477002708
Returns: 1
1117874276
Returns: 1
378147332
Returns: 1
557741133
Returns: 1
668154454
Returns: 1
570251827
Returns: 1
1039736738
Returns: 1
2099585234
Returns: 1
1981093541
Returns: 1
1884363755
Returns: 1
1865560917
Returns: 1
745615932
Returns: 1
1214865010
Returns: 1
1695760303
Returns: 1
1246390622
Returns: 1
1692493778
Returns: 1
1065227310
Returns: 1
1265265799
Returns: 1
1084963329
Returns: 1
1478843645
Returns: 1
2006456208
Returns: 1
1722953950
Returns: 1
496132103
Returns: 1
6562762
Returns: 1
957223956
Returns: 1
654140677
Returns: 1
1586450237
Returns: 1
1018720108
Returns: 1
2026536822
Returns: 1
764222894
Returns: 1
1544043251
Returns: 1
1034964664
Returns: 1
684533819
Returns: 1
559623793
Returns: 2
1102523518
Returns: 1
1103984296
Returns: 1
1487426600
Returns: 1
1402158154
Returns: 1
1000000000000
Returns: 1
3
Returns: 3
1
Returns: 1
4
Returns: 1
5
Returns: 2
6
Returns: 1
7
Returns: 2
8
Returns: 1
9
Returns: 1
10
Returns: 1
1000000000000
Returns: 1
999999999997
Returns: 1
999999999989
Returns: 2
22222223
Returns: 2
524524524524
Returns: 1
524524524521
Returns: 2
51432121451
Returns: 2
25
Returns: 1
11
Returns: 2
999999000001
Returns: 2
66
Returns: 1
16
Returns: 1
49
Returns: 1
100000000019
Returns: 2
982451653
Returns: 2
31
Returns: 2
424248523252
Returns: 1
27
Returns: 1
999966000289
Returns: 1
10010602793
Returns: 1
97969
Returns: 1
1000000000
Returns: 1
13
Returns: 2
1000000007
Returns: 2