Problem Statement
This problem has a non-standard time limit: 3 seconds.
We call a number a palindrome if it reads the same from left to right as it does from right to left. For example, some palindromic numbers are 6, 11, 121, 666, 100001, and 123454321. Note that the number 47740 is not a palindrome (as you are not allowed to have unnecessary leading zeros).
Elly has the integer X. Now she wants to find the lowest integer 1 ⤠Y ⤠1,000,000,000, such that the product X * Y is a palindrome (if there is such a number).Let's look at several examples:
- If X = 42, then Y is 6 (42 * 6 = 252).
- If X = 121, then Y = 1 (121 * 1 = 121).
- If X = 1337, then Y = 143 (1337 * 143 = 191191).
- If X = 13, then Y = 38 (13 * 38 = 494).
- If X = 100, then no Y can make it a palindrome.
- If X = 21951, then Y = 9612315612 would make it a palindrome (21951 * 9612315612 = 210999939999012), but this Y isn't in the bounds [1, 10^9].
Definition
- Class:
- EllysPalMul
- Method:
- getMin
- Parameters:
- int
- Returns:
- int
- Method signature:
- int getMin(int X)
- (be sure your method is public)
Constraints
- X will be between 1 and 100,000, inclusive.
Examples
42
Returns: 6
42 * 6 = 252
121
Returns: 1
121 is already a palindrome, so we can multiply it by 1.
1337
Returns: 143
1337 * 143 = 191191
13
Returns: 38
13 * 38 = 494
100
Returns: -1
No Y can make it a palindrome, so we return -1.
21951
Returns: -1
Y = 9612315612 would make it a palindrome (21951 * 9612315612 = 210999939999012), but since it isn't in the bounds [1, 10^9], we return -1.
70794
Returns: 33477128
1
Returns: 1
3
Returns: 1
7
Returns: 1
10
Returns: -1
420
Returns: -1
12340
Returns: -1
100000
Returns: -1
8296
Returns: 746
15373
Returns: 14914
18730
Returns: -1
19962
Returns: 21252
22591
Returns: 337
37114
Returns: 1196
37543
Returns: 19
41230
Returns: -1
46415
Returns: 10827
48677
Returns: 79
58955
Returns: 9097
67211
Returns: 117
67573
Returns: 1373
69066
Returns: 425962
77271
Returns: 6985
80421
Returns: 1139
89015
Returns: 6405
91379
Returns: 803
94951
Returns: 8017
97982
Returns: 4857
21951
Returns: -1
26673
Returns: -1
35564
Returns: -1
48505
Returns: -1
53346
Returns: -1
65853
Returns: -1
71128
Returns: -1
80019
Returns: -1
81
Returns: 12345679
162
Returns: 172839506
243
Returns: 122633744
324
Returns: 86419753
405
Returns: 135802469
486
Returns: 61316872
567
Returns: 49382716
648
Returns: 45987654
655
Returns: 77913
729
Returns: 54581617
891
Returns: 61728395
972
Returns: 30658436
1053
Returns: 27445394
1134
Returns: 24691358
1458
Returns: 33463648
1539
Returns: 12345679
2019
Returns: 819
2025
Returns: 28493827
2673
Returns: 21324205
5427
Returns: 5343466
6061
Returns: 4022
6075
Returns: 9512757
6156
Returns: 10721051
7317
Returns: 10944224
8081
Returns: 445372913
8691
Returns: 21627991
8791
Returns: 284141962
9396
Returns: 9034588
9234
Returns: 7340264
9072
Returns: 7263998
9477
Returns: 7259618
9153
Returns: 6443745
9315
Returns: 6226365
9639
Returns: 5913435
9558
Returns: 5011403
9882
Returns: 4756102
9963
Returns: 3001084
11583
Returns: 338081671
15795
Returns: 322822659
16162
Returns: 272125907
17582
Returns: 142070981
19359
Returns: 67151919
17335
Returns: 2942409
17735
Returns: 2863903
18295
Returns: 2853255
18435
Returns: 2787649
19535
Returns: 2667075
23615
Returns: 213046407
23895
Returns: 213006059
23166
Returns: 207502374
24243
Returns: 148460971
26373
Returns: 94774654
28188
Returns: 78004824
20745
Returns: 2447809
20865
Returns: 2414657
23475
Returns: 2220415
23605
Returns: 2171283
36585
Returns: 158555101
32805
Returns: 156988203
32324
Returns: 138845731
34749
Returns: 138334916
36855
Returns: 137756071
39285
Returns: 131599539
39905
Returns: 126547901
35164
Returns: 73740018
32886
Returns: 66866992
38718
Returns: 59403479
40405
Returns: 128432123
43955
Returns: 114844591
45205
Returns: 110654961
47385
Returns: 107607553
46332
Returns: 103751187
49755
Returns: 103527953
48486
Returns: 90730469
42687
Returns: 60873096
49734
Returns: 53805843
49572
Returns: 44177921
59105
Returns: 85265241
50625
Returns: 104019753
50255
Returns: 101723773
51505
Returns: 99047303
53055
Returns: 98953535
51435
Returns: 98764843
57915
Returns: 98556505
53555
Returns: 97249555
55485
Returns: 96962051
56295
Returns: 92348837
60105
Returns: 89843429
67907
Returns: 147259957
61155
Returns: 83361851
62105
Returns: 81330281
64265
Returns: 78193197
65205
Returns: 78058121
66015
Returns: 77254527
67635
Returns: 75389603
64648
Returns: 69561753
69498
Returns: 69167458
71404
Returns: 56900301
76993
Returns: 20664007
70065
Returns: 72772137
71685
Returns: 71842059
72729
Returns: 71474635
70845
Returns: 71015469
73305
Returns: 69272081
78975
Returns: 66463943
70328
Returns: 36870009
82231
Returns: 48644684
86686
Returns: 239489657
81081
Returns: 75183826
84645
Returns: 66151479
81405
Returns: 63251643
83025
Returns: 63221897
80595
Returns: 63150319
82215
Returns: 62762221
83835
Returns: 61772529
85455
Returns: 59327131
97801
Returns: 776995357
94514
Returns: 31423478
92745
Returns: 55839107
95175
Returns: 55369455
91935
Returns: 55145483
96795
Returns: 54754415
96255
Returns: 52984753
99225
Returns: 52899873
96765
Returns: 52711051
98415
Returns: 52329401
8181
Returns: -1
8891
Returns: -1
9801
Returns: -1
16362
Returns: -1
17782
Returns: -1
17982
Returns: -1
19602
Returns: -1
21951
Returns: -1
24543
Returns: -1
26673
Returns: -1
26973
Returns: -1
29403
Returns: -1
32724
Returns: -1
35564
Returns: -1
35964
Returns: -1
39204
Returns: -1
40905
Returns: -1
43902
Returns: -1
44455
Returns: -1
44955
Returns: -1
48505
Returns: -1
49005
Returns: -1
49086
Returns: -1
53346
Returns: -1
53946
Returns: -1
56555
Returns: -1
57267
Returns: -1
58806
Returns: -1
62237
Returns: -1
62937
Returns: -1
65448
Returns: -1
65853
Returns: -1
68607
Returns: -1
71128
Returns: -1
71928
Returns: -1
73629
Returns: -1
78408
Returns: -1
80019
Returns: -1
80919
Returns: -1
87804
Returns: -1
88209
Returns: -1
89991
Returns: -1
98172
Returns: -1
98901
Returns: -1
37665
Returns: 1510681
54108
Returns: 47676794
25191
Returns: 2731046
10019
Returns: 138149
52579
Returns: 19019
51775
Returns: 1006835
6
Returns: 1
99665
Returns: 50346337
96335
Returns: 53449
99997
Returns: 166113
97137
Returns: 89364
4649
Returns: 239
99985
Returns: 517219
2494
Returns: 1616
99989
Returns: 281438
1001
Returns: 1
1215
Returns: 46748971