Problem Statement
The reindeer love candies. They have n pieces of candy. The pieces of candy are numbered 1 through n. Dasher is one of the reindeer. He wants to eat one of the candies. To pick the one he will eat, Dasher uses the following method:
- While there is more than one piece of candy:
- Discard all candies that are numbered by perfect squares (i.e., candies 1, 4, 9, 16, 25, etc.).
- Relabel the remaining k candies 1 through k, keeping the numbers in the same order.
- Once only one piece of candy remains, Dasher will eat it.
You are given an
Definition
- Class:
- MagicCandy
- Method:
- whichOne
- Parameters:
- int
- Returns:
- int
- Method signature:
- int whichOne(int n)
- (be sure your method is public)
Notes
- It can be proved that Dasher's method will always lead to a situation in which only one piece of candy remains.
Constraints
- n will be between 1 and 1,000,000,000 inclusive.
Examples
5
Returns: 5
We start with 5 candies. Let's call them A, B, C, D, and E. Initially, they are numbered 1 through 5, in this order. In the first round, we discard candies with numbers 1 (which is A) and 4 (which is D). This leaves us with candies B, C, and E. These candies now get new numbers: B becomes 1, C becomes 2, and E becomes 3. In the second round, we discard candy number 1 (which is now B). This leaves us with candies C and E. Again, the candies now get new numbers: C becomes 1 and E becomes 2. In the third round, we discard candy number 1 (which is now C). The only remaining candy is E. Its number in the beginning was 5, therefore our method should return 5.
9
Returns: 7
This time we start with 9 pieces of candy. If we label them A through I, the process will look as follows: start: ABCDEFGHI throw away candies 1, 4, 9 (A, D, I) after the first round: BCEFGH throw away candies 1, 4 (B, F) after the second round: CEGH throw away candies 1, 4 (C, H) after the third round: EG throw away candy 1 (E) at the end: G
20
Returns: 17
5265
Returns: 5257
20111223
Returns: 20110741
1
Returns: 1
977
Returns: 962
999
Returns: 993
407
Returns: 401
655
Returns: 651
819
Returns: 813
717
Returns: 703
201
Returns: 197
773
Returns: 757
354
Returns: 343
525
Returns: 507
279
Returns: 273
172
Returns: 170
103
Returns: 101
473
Returns: 463
50
Returns: 50
991
Returns: 962
446
Returns: 442
592
Returns: 577
226
Returns: 226
496
Returns: 485
954
Returns: 931
611
Returns: 601
722
Returns: 703
361
Returns: 343
254
Returns: 241
736
Returns: 730
426
Returns: 421
443
Returns: 442
869
Returns: 842
587
Returns: 577
19
Returns: 17
419
Returns: 401
20
Returns: 17
648
Returns: 626
335
Returns: 325
72
Returns: 65
251
Returns: 241
674
Returns: 651
239
Returns: 226
919
Returns: 901
631434
Returns: 631231
573880
Returns: 573807
218681
Returns: 218557
81607
Returns: 81511
184094
Returns: 184042
41130
Returns: 41007
212195
Returns: 212061
841452
Returns: 840890
716519
Returns: 715717
32472
Returns: 32401
949657
Returns: 949651
565925
Returns: 565505
830725
Returns: 829922
280746
Returns: 280371
651694
Returns: 651250
601368
Returns: 600626
536028
Returns: 535825
19751
Returns: 19741
771447
Returns: 770885
772625
Returns: 771763
216981
Returns: 216691
710335
Returns: 709807
979921
Returns: 979111
179520
Returns: 179353
13661
Returns: 13573
259393
Returns: 259082
292057
Returns: 291601
526906
Returns: 526351
21284
Returns: 21171
690533
Returns: 689731
996785
Returns: 996005
898420
Returns: 897757
106526
Returns: 106277
86403
Returns: 86143
498306
Returns: 497731
645900
Returns: 645613
880133
Returns: 879845
392602
Returns: 392503
961461
Returns: 961381
42176
Returns: 42026
139493627
Returns: 139487911
105126837
Returns: 105124010
460216916
Returns: 460209757
685443914
Returns: 685418581
792615630
Returns: 792591410
702309530
Returns: 702303002
841851564
Returns: 841841211
444959509
Returns: 444956837
489967884
Returns: 489958226
61948395
Returns: 61944771
31483581
Returns: 31483322
358620543
Returns: 358609970
99898192
Returns: 99890031
71209241
Returns: 71208283
166207090
Returns: 166203665
525732570
Returns: 525716113
84501369
Returns: 84492865
382893046
Returns: 382887057
384179516
Returns: 384160001
573649693
Returns: 573626451
702770728
Returns: 702753591
13275450
Returns: 13275093
288437904
Returns: 288422290
115200608
Returns: 115197290
145668933
Returns: 145660762
331963137
Returns: 331950181
16264807
Returns: 16261057
368394082
Returns: 368390443
391420538
Returns: 391406657
638670155
Returns: 638648713
649752508
Returns: 649740101
446313987
Returns: 446307877
172134326
Returns: 172121281
543125116
Returns: 543123026
674531602
Returns: 674518813
218048458
Returns: 218034757
513753516
Returns: 513747557
783235033
Returns: 783216197
927116012
Returns: 927111153
987718240
Returns: 987687757
1000000000
Returns: 999982507
998987654
Returns: 998970843
555555555
Returns: 555544901
999998797
Returns: 999982507
999982506
Returns: 999950885
987654321
Returns: 987624903
999999999
Returns: 999982507
99999545
Returns: 99990001
999982507
Returns: 999982507
100000000
Returns: 99990001
999982508
Returns: 999982507
999999998
Returns: 999982507
900000000
Returns: 899970001
999999996
Returns: 999982507
27
Returns: 26
999980884
Returns: 999950885
99999
Returns: 99857
12896
Returns: 12883
3
Returns: 3
10
Returns: 10
257000001
Returns: 256992962
10000
Returns: 9901
91
Returns: 91
4
Returns: 3
999999
Returns: 999001
2
Returns: 2
999950884
Returns: 999919263
998998998
Returns: 998970843
777777777
Returns: 777768433