Problem Statement
Consider all multiples of a positive integer M that do not exceed U. If we write each of them in base B, how many of them don't contain any zeros? Return the answer modulo 10^9 + 7.
Definition
- Class:
- NiceMultiples
- Method:
- count
- Parameters:
- long, long, int
- Returns:
- int
- Method signature:
- int count(long M, long U, int B)
- (be sure your method is public)
Constraints
- M will be between 1 and 10^12, inclusive.
- U will be between M and 10^12, inclusive.
- B will be between 2 and 16, inclusive.
Examples
1
100
2
Returns: 6
The multiples of 1 that do not contain any zeros in base 2 are the numbers 1, 3, 7, 15, 31, and 63. (In base 2, these are 1, 11, 111, 1111, 11111, and 111111.)
6
123456789
3
Returns: 0
In base 3, each multiple of 6 ends in a zero.
2
117
10
Returns: 43
3333333333
9999999999
10
Returns: 3
Watch out for integer overflow.
1
100000000000
10
Returns: 303691814
The answer is (9 + 9^2 + ... + 9^11) modulo (10^9 + 7).
47
47
10
Returns: 1
407
407
10
Returns: 0
1
1
16
Returns: 1
16
32
16
Returns: 0
3721
394936
4
Returns: 8
3
187
14
Returns: 58
403
425
7
Returns: 1
1919
323399
5
Returns: 39
25
3563
14
Returns: 117
32387045
922820418
11
Returns: 15
3
266522581
3
Returns: 0
692553
7147122712
14
Returns: 5789
784819
7785046
3
Returns: 0
24
7155782
9
Returns: 102624
180934421
332855215
5
Returns: 0
3
80907503868
9
Returns: 702604933
68
465655755
13
Returns: 3930833
4
8
5
Returns: 2
2
4
2
Returns: 0
19206
91990
11
Returns: 0
8724880
1827646819
15
Returns: 93
1521
6143
14
Returns: 3
1
29
3
Returns: 14
15718859
14834267013
14
Returns: 540
1634
3667021
14
Returns: 1441
53
57
16
Returns: 1
95141
31677767
6
Returns: 59
2923
10410
9
Returns: 0
6286
24548
11
Returns: 3
8
15312
3
Returns: 100
1
26905
5
Returns: 8020
1313
6320600
8
Returns: 1995
6932
9082669
14
Returns: 787
17863
107810342668
14
Returns: 3109070
5
415
13
Returns: 71
677
677
4
Returns: 1
47711
516508
16
Returns: 10
17
96161467316
11
Returns: 227453581
129541
19134736
10
Returns: 74
119
2025
15
Returns: 15
230355654
3174811122
4
Returns: 0
462718858
14045088900
13
Returns: 14
2
8316984411
16
Returns: 396192111
1
113365914
10
Returns: 49644913
711935
493167733
5
Returns: 0
6
432593
16
Returns: 52320
368463
2641556297
3
Returns: 0
450
3325500
10
Returns: 0
17154235
17154235
16
Returns: 0
10
573055459
5
Returns: 0
3159
31273
4
Returns: 0
440399
2531106
16
Returns: 4
738927
4175032933
7
Returns: 0
44
9623
10
Returns: 143
345
395780
6
Returns: 207
127
70468052
12
Returns: 316032
11
32723513
4
Returns: 115414
6
31987
13
Returns: 3919
1
2937
15
Returns: 2562
7
797
12
Returns: 96
244
426586211
12
Returns: 696698
1
6901
2
Returns: 12
2
733886153
7
Returns: 81769305
1701
1688374819
9
Returns: 0
110506
200011355448
8
Returns: 327306
363478
455987770656
5
Returns: 39002
283079
993494350717
7
Returns: 430054
315374
131054560977
13
Returns: 202751
212612
500041691841
2
Returns: 0
169150
439335045341
5
Returns: 0
59424
782246570102
9
Returns: 2498537
301363
642609325029
14
Returns: 1024486
148141
696629635759
11
Returns: 1684144
166432
369376067545
5
Returns: 66697
126005
940348419096
14
Returns: 3580934
220204
304989040334
7
Returns: 189578
159015
460187645341
14
Returns: 1420482
281834
302910309057
4
Returns: 4143
287107
473913345879
6
Returns: 133012
290922
951383987731
6
Returns: 0
32735
623137254906
5
Returns: 0
152074
963517233130
15
Returns: 3271147
353297
208156865659
4
Returns: 3845
261410
319493123783
10
Returns: 0
354436
859223468943
2
Returns: 0
313631
593886937057
2
Returns: 0
211326
428688050676
11
Returns: 737690
272628
687058684673
11
Returns: 900219
265802
963746880446
7
Returns: 448458
45245
765257903858
3
Returns: 1312
184633
348366399593
14
Returns: 915136
382005
865226283309
7
Returns: 277130
214699
492501085320
2
Returns: 0
356526
516562424279
3
Returns: 0
399476
789436773256
12
Returns: 571429
124332
911800995176
3
Returns: 0
158589
827796437906
5
Returns: 144647
362876
395396877205
6
Returns: 70163
360160
515066065717
14
Returns: 651293
71389
213396220313
7
Returns: 411985
210083
986964664252
8
Returns: 885079
86969
361600196933
5
Returns: 124523
256412
398364851325
10
Returns: 446679
77061
427647994935
15
Returns: 2559622
258223
818110384735
3
Returns: 256
225282
130321202626
9
Returns: 119533
377500
128587864776
2
Returns: 0
368967
756842396689
6
Returns: 87649
379711
949350874976
11
Returns: 886710
191967
515449234123
16
Returns: 1509629
392905
512376067678
7
Returns: 178294
198556
118499328262
6
Returns: 40590
144538
120728012734
13
Returns: 407810
288857
317017490884
6
Returns: 89824
41952
992685731076
16
Returns: 0
236996
235394350505
16
Returns: 448691
376087
490491066101
14
Returns: 642937
84262
785637696099
13
Returns: 4230979
383529
723240175642
3
Returns: 0
204302
467502504915
2
Returns: 0
258932
380344622325
14
Returns: 659508
160016
268324667971
16
Returns: 0
206336
995999100415
13
Returns: 0
257716
656073276295
5
Returns: 73588
243492
655396795637
6
Returns: 0
51669093474
894006223612
15
Returns: 9
1647
732911768212
16
Returns: 250047514
53
631919663837
11
Returns: 228400042
564
200198318185
13
Returns: 164262770
1
846136706472
14
Returns: 883096778
969
479971770364
10
Returns: 158762024
6
739908088057
2
Returns: 0
5409968701
619417222820
9
Returns: 29
11518
741841238621
8
Returns: 10216787
564
916600478716
5
Returns: 40614425
120480226
150322726431
9
Returns: 351
6280010996
932739982633
11
Returns: 47
3201141278
324746970086
9
Returns: 23
671128
138359808091
8
Returns: 0
1852
185975044420
9
Returns: 28056944
886
751184647064
7
Returns: 106136599
7449
991159172624
3
Returns: 0
19553415507
963007386254
16
Returns: 32
36067
879479198005
10
Returns: 7739914
11
290457947567
5
Returns: 849456719
242199
737912986928
7
Returns: 388353
79
475796092067
15
Returns: 244840653
104857
730385225902
6
Returns: 490471
3
643901319172
7
Returns: 479159039
19
797695989395
10
Returns: 371841769
3059
816903160528
9
Returns: 67795262
1
121461558156
8
Returns: 34801933
405949375
222199637120
6
Returns: 39
267177755
498081032997
5
Returns: 0
4
852717464635
12
Returns: 572694225
12413778301
852216911853
11
Returns: 26
244398834
335826399206
16
Returns: 730
64
298976790786
15
Returns: 529764913
3961309
692317710530
10
Returns: 55684
15849406670
861856565674
11
Returns: 22
3957864
823319346550
8
Returns: 0
1616
706059610075
4
Returns: 0
44558160844
174888428686
6
Returns: 0
800213291
646324400068
12
Returns: 338
235
1000000000000
11
Returns: 515366432