Problem Statement
In this problem we are interested in non-negative integers that have all digits distinct. For example, in base 10 the numbers 0, 47, 74, 13579, and 9876543201 all have this property.
The number 114 does not have this property in base 10, but it does have it in base 4 (where its digits are 1302).
You are given a positive integer N and the base B.
Let S(N,B) be the set of all non-negative integers that are multiples of N and have all digits distinct. Find and return the second largest number in S(N,B). If there is no such number, return -1 instead.
Definition
- Class:
- SecondLargestMultiple
- Method:
- find
- Parameters:
- long, int
- Returns:
- long
- Method signature:
- long find(long N, int B)
- (be sure your method is public)
Constraints
- N will be between 1 and 10^18, inclusive.
- B will be between 2 and 12, inclusive.
Examples
1
10
Returns: 9876543201
We are in base 10. The largest multiple of 1 with distinct digits is clearly 9876543210, and the second largest is 9876543201.
12345
10
Returns: 9876012345
12345
3
Returns: -1
2
2
Returns: 0
The largest non-negative integer that has distinct digits in base 2 is 10 (base 2) = 2 (base 10). This is a multiple of 2, so it's the largest integer in S(2,2). The next non-negative integer that has distinct digits in base 2 is 1 (base 2) = 1 (base 10). This is not a multiple of 2. The final non-negative integer that has distinct digits in base 2 is 0 (base 2) = 0 (base 10). This is a multiple of 2 and thus the number we seek.
17
4
Returns: -1
The only multiple of 17 that has distinct digits in base-4 is the number 0. Thus, the second largest number with this property does not exist.
282458553905
11
Returns: 0
The only two multiples of this N with distinct digits in base 11 are zero and itself.
25
7
Returns: 800025
1768001
12
Returns: 8810065671066
This runs for about one second if I don't break the distinct digit test early, so anything with less than 5_000_000 multiples should run in time.
1628712
12
Returns: 736759274184
This one seemingly should have a pandigital solution but doesn't. The correct answer is 736759274184 = ba957234860_12.
497666
12
Returns: -1
746499
12
Returns: -1
1628797
12
Returns: 8226071482409
791738
12
Returns: 8655670142834
161052
11
Returns: -1
161062
11
Returns: -1
14642
11
Returns: 23073156440
43926
11
Returns: 23034047658
222
11
Returns: 25677847782
223
11
Returns: 282456457355
382
11
Returns: 25677554860
591
11
Returns: 282452714625
888
11
Returns: 25676099088
1047
11
Returns: 282428244765
2291
11
Returns: 282412612405
2660
11
Returns: 25651728620
2
11
Returns: 25678050334
1330
11
Returns: 25657065910
3137
11
Returns: 282341967655
5320
11
Returns: 25651114160
5521
11
Returns: 282312994795
6016
11
Returns: 25645558272
8544
11
Returns: 25630086144
9833
11
Returns: 282024943675
11376
11
Returns: 25614622512
14642
11
Returns: 23073156440
12216
11
Returns: 25612835208
13199
11
Returns: 281894540735
700
10
Returns: -1
1234700
10
Returns: -1
248833
12
Returns: -1
32
9
Returns: 42372480
33
9
Returns: 381352620
8
9
Returns: 42373288
9
9
Returns: 381366972
7
9
Returns: 381364788
47
7
Returns: 795099
48
7
Returns: 112176
49
7
Returns: -1
107
6
Returns: 39590
108
6
Returns: -1
77
6
Returns: 16555
225
5
Returns: -1
28
5
Returns: 420
29
5
Returns: 1914
30
5
Returns: 2790
3
4
Returns: 225
23
4
Returns: -1
78
4
Returns: 78
2638
5
Returns: 0
3
3
Returns: 15
4
3
Returns: -1
6
3
Returns: 0
18
3
Returns: -1
19
3
Returns: 0
7
3
Returns: 7
1
2
Returns: 1
3
2
Returns: -1
1
11
Returns: 282458553895
1
12
Returns: 8842413667681
7
10
Returns: 9876543012
7
11
Returns: 282458552355
7
12
Returns: 8842413664392
32
9
Returns: 42372480
31
9
Returns: 381313764
4961
11
Returns: -1
343
7
Returns: -1
5
9
Returns: 381365580
3
9
Returns: 381366972
22
9
Returns: 381364940
26
9
Returns: 381365660
56
9
Returns: 42371112
63
9
Returns: 381359916
168
9
Returns: 42371112
146
9
Returns: 381361052
505
9
Returns: 380772020
440
9
Returns: 42357920
1532
9
Returns: 379275708
1989
9
Returns: 379525068
2522
9
Returns: 380534492
5615
9
Returns: 379012500
17351
9
Returns: 349587948
6948
9
Returns: 376866468
26397
9
Returns: 366918300
19724
9
Returns: 374144556
93626
9
Returns: 329750772
162890
9
Returns: 0
429619
9
Returns: 4296190
463768
9
Returns: -1
550600
9
Returns: -1
1193255
9
Returns: 0
3974876
9
Returns: 0
3388224
9
Returns: -1
8642516
9
Returns: -1
8771615
9
Returns: -1
31906921
9
Returns: -1
31594299
9
Returns: -1
91241906
9
Returns: -1
102400618
9
Returns: -1
4
10
Returns: 9876543012
3
10
Returns: 9876543201
26
10
Returns: 9876523410
20
10
Returns: 9876541320
72
10
Returns: 9876541320
71
10
Returns: 9876453012
171
10
Returns: 9876534210
234
10
Returns: 9876523410
418
10
Returns: 9874501362
528
10
Returns: 9876403152
1906
10
Returns: 9873156240
1130
10
Returns: 9876453120
4141
10
Returns: 9842705631
2476
10
Returns: 9861405372
8617
10
Returns: 9870325416
12032
10
Returns: 9852367104
26102
10
Returns: 9834607152
43461
10
Returns: 9860214375
134854
10
Returns: 8914523670
109325
10
Returns: 9468310275
443645
10
Returns: 8061473295
460329
10
Returns: 9265041783
1061673
10
Returns: 7615380429
735071
10
Returns: 6807492531
4315622
10
Returns: 207149856
2546252
10
Returns: 4972830156
10400969
10
Returns: 0
8449695
10
Returns: 6430217895
30154058
10
Returns: -1
39319410
10
Returns: -1
57830226
10
Returns: -1
98969914
10
Returns: -1
291451049
10
Returns: -1
223911036
10
Returns: 0
1112040101
10
Returns: -1
694852439
10
Returns: -1
2188685446
10
Returns: -1
2285780608
10
Returns: -1
5
11
Returns: 282458553895
7
11
Returns: 282458552355
10
11
Returns: 25678034240
24
11
Returns: 25678047432
46
11
Returns: 25678046262
63
11
Returns: 282458522115
182
11
Returns: 25678006172
147
11
Returns: 282458522115
726
11
Returns: -1
616
11
Returns: 25678033304
1792
11
Returns: 25677042944
1181
11
Returns: 282451296325
3120
11
Returns: 25675924560
3883
11
Returns: 282431616445
12784
11
Returns: 25670668304
14513
11
Returns: 282027573315
36272
11
Returns: 25620582112
56254
11
Returns: 25650023872
78605
11
Returns: 282432245485
117230
11
Returns: 25666805120
185111
11
Returns: 281691738695
266430
11
Returns: 25599660120
705034
11
Returns: 25601899642
687898
11
Returns: 25439843836
2708958
11
Returns: 25244779602
3738597
11
Returns: 230204110275
13957833
11
Returns: 44176541445
12777482
11
Returns: 14604661926
40599744
11
Returns: -1
41255221
11
Returns: 65802077495
101513697
11
Returns: 0
92113851
11
Returns: 0
375692739
11
Returns: -1
332930627
11
Returns: -1
423049007
11
Returns: -1
1040030615
11
Returns: -1
2300485502
11
Returns: -1
3382615371
11
Returns: -1
7393034162
11
Returns: -1
7574609718
11
Returns: -1
14023154974
11
Returns: -1
17233176487
11
Returns: -1
53763700681
11
Returns: -1
82348642865
11
Returns: -1
142178161820
11
Returns: -1
129356226082
11
Returns: -1
3
12
Returns: 8842413667560
4
12
Returns: 8842413667560
20
12
Returns: 8842413664260
25
12
Returns: 8842413643250
52
12
Returns: 8842413641776
33
12
Returns: 8842413667560
149
12
Returns: 8842412383695
194
12
Returns: 8842412861172
243
12
Returns: 8842412675547
577
12
Returns: 8842410911521
979
12
Returns: 8842413373695
1577
12
Returns: 8842367910288
2737
12
Returns: 8842395732786
5211
12
Returns: 8842302150264
6900
12
Returns: 8842412693400
10890
12
Returns: 8842406987700
22416
12
Returns: 8841484755312
28886
12
Returns: 8842395023176
82796
12
Returns: 8841723984940
155930
12
Returns: 8829688437680
445403
12
Returns: 8838758411021
434563
12
Returns: 8839356028459
953279
12
Returns: 8832457862976
1568891
12
Returns: 8770914944429
3810068
12
Returns: 8794677092564
3496821
12
Returns: 8813877203340
14238700
12
Returns: 8638847109200
14301304
12
Returns: 8757374901792
14684026
12
Returns: 8179266794468
37670413
12
Returns: 8819698454864
52958084
12
Returns: 7016681339580
66551234
12
Returns: 3708634065884
353491249
12
Returns: 6528629877781
169557740
12
Returns: 8753418327500
970939350
12
Returns: 2200148567100
750713103
12
Returns: 21770679987
1362775149
12
Returns: -1
2169436721
12
Returns: -1
6545844607
12
Returns: -1
5113413693
12
Returns: -1
10555761677
12
Returns: -1
11760561381
12
Returns: -1
69517146610
12
Returns: -1
45587374864
12
Returns: -1
243324642096
12
Returns: -1
245116453805
12
Returns: -1
370780598792
12
Returns: -1
821718339309
12
Returns: -1
2068531274342
12
Returns: -1
1754018891728
12
Returns: -1
5653215925698
12
Returns: -1
5208639404102
12
Returns: -1
2
2
Returns: 0
1
2
Returns: 1
1
2
Returns: 1
1
2
Returns: 1
8
2
Returns: -1
21
3
Returns: 0
15
3
Returns: 0
1
3
Returns: 19
14
3
Returns: -1
27
3
Returns: -1
134
4
Returns: -1
196
4
Returns: -1
17
4
Returns: -1
201
4
Returns: 0
32
4
Returns: -1
2887
5
Returns: -1
2008
5
Returns: -1
2058
5
Returns: -1
468
5
Returns: -1
25
5
Returns: -1
23082
6
Returns: -1
21700
6
Returns: -1
10940
6
Returns: -1
30315
6
Returns: -1
36
6
Returns: -1
616273
7
Returns: -1
102956
7
Returns: -1
703528
7
Returns: -1
481790
7
Returns: -1
98
7
Returns: -1
16395408
8
Returns: -1
4643714
8
Returns: -1
10704399
8
Returns: -1
9142249
8
Returns: -1
192
8
Returns: -1
152
11
Returns: 25678034120
101088
12
Returns: -1
100
10
Returns: -1
10000
12
Returns: 8842270800000
10000
11
Returns: 25675580000
144
12
Returns: -1
20016
12
Returns: -1
248832
12
Returns: -1
1000000000
12
Returns: -1
12347
11
Returns: 282412128445
407779
9
Returns: 3670011
4
11
Returns: 25678050212
1008
12
Returns: -1