Problem Statement
Time limit is 4 seconds.
All numbers in this problem are positive integers in base 10 with no leading zeros.
We are interested in occurrences of a number in another number. This happens whenever the string of digits that represents the first number occurs in the string of digits that represents the second number (as a contiguous subsequence).
For example:
- There are two occurrences of 47 in 147000470.
- There is one occurrence of 47 in 47.
- There are no occurrences of 47 in 3.
- There are no occurrences of 42 in 4002.
- There are three occurrences of 33 in 133337. (Note that there are three occurrences, not just two. Occurrences may overlap.)
You are given an
Let S be the set of all D-digit prime numbers with the maximum number of occurrences of the given pattern.
Return sum(S) modulo 1,000,000,007.
Definition
- Class:
- PrettyPrimes
- Method:
- solve
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int solve(int pattern, int D)
- (be sure your method is public)
Constraints
- pattern will be between 1 and 99, inclusive.
- D will be between 1 and 12, inclusive.
Examples
17
5
Returns: 125285
Clearly we can get at most two occurrences of 17 in a 5-digit number. There are five 5-digit primes with two occurrences of the number 17. These are 11717, 17117, 17317, 17417, and 61717. The answer is their sum.
42
5
Returns: 12818536
There are no primes with two occurrences of 42. There are 258 primes with one occurrence of 42. The smallest among them is 10427, the largest one is 98429. The answer is their sum.
44
10
Returns: 444444419
The only 10-digit number with 9 occurrences of 44 is clearly not a prime. The only 10-digit number with 8 occurrences of 44 is 4,444,444,447. The answer is this number modulo 10^9 + 7.
14
1
Returns: 17
The 1-digit primes with the most occurrences of the number 14 are the primes 2, 3, 5, and 7. Each of them contains zero occurrences of the number 14.
6
1
Returns: 17
5
1
Returns: 5
1
2
Returns: 11
3
2
Returns: 356
85
11
Returns: 843839847
82
11
Returns: 380458850
94
11
Returns: 219009470
99
12
Returns: 593455582
90
11
Returns: 661728243
83
12
Returns: 299463482
60
2
Returns: 1043
70
9
Returns: 139332867
80
10
Returns: 143937998
60
5
Returns: 121208
90
7
Returns: 9090901
70
10
Returns: 987967513
10
7
Returns: 154767039
10
2
Returns: 1043
10
5
Returns: 10103
80
12
Returns: 204276999
90
1
Returns: 17
60
10
Returns: 344458951
70
4
Returns: 122100
40
9
Returns: 808080810
90
6
Returns: 20343188
80
4
Returns: 150440
10
9
Returns: 26180870
60
12
Returns: 343807270
60
10
Returns: 344458951
60
9
Returns: 606060607
44
4
Returns: 8888
11
3
Returns: 2357
66
2
Returns: 1043
66
10
Returns: 666666619
77
9
Returns: 355555543
99
5
Returns: 289988
22
11
Returns: 222222069
44
12
Returns: 444441335
66
4
Returns: 6661
88
12
Returns: 888882671
22
7
Returns: 41333703
66
11
Returns: 666666205
55
4
Returns: 5557
99
5
Returns: 289988
66
9
Returns: 666666667
11
8
Returns: 154444458
55
10
Returns: 555555522
77
5
Returns: 291104
99
4
Returns: 18996
22
11
Returns: 222222069
4
7
Returns: 187966743
8
5
Returns: 88883
9
3
Returns: 5133
8
1
Returns: 17
3
9
Returns: 711465630
2
2
Returns: 52
5
9
Returns: 347282750
9
8
Returns: 99396930
7
6
Returns: 8510217
1
10
Returns: 882626517
5
11
Returns: 254057974
9
11
Returns: 489157372
8
12
Returns: 888882671
6
1
Returns: 17
4
4
Returns: 8888
6
7
Returns: 267152609
3
3
Returns: 3489
8
4
Returns: 8887
3
2
Returns: 356
3
12
Returns: 648057607
69
7
Returns: 29540467
25
8
Returns: 463500897
12
7
Returns: 1212121
26
1
Returns: 17
51
3
Returns: 1153
39
8
Returns: 833118626
48
9
Returns: 748653964
81
12
Returns: 175438749
23
3
Returns: 2041
96
11
Returns: 969696289
14
12
Returns: 308862652
17
2
Returns: 17
12
5
Returns: 9951144
19
5
Returns: 160195
49
3
Returns: 1937
95
10
Returns: 404781019
28
6
Returns: 8900938
91
2
Returns: 1043
65
10
Returns: 942556139
83
2
Returns: 83
92
8
Returns: 930364643
81
7
Returns: 64817429
92
5
Returns: 185848
89
2
Returns: 89
46
6
Returns: 9579592
38
1
Returns: 17
28
8
Returns: 809621903
59
11
Returns: 448109208
19
4
Returns: 240043
51
5
Returns: 205730
98
7
Returns: 775795978
98
9
Returns: 979797965
65
7
Returns: 201388382
42
2
Returns: 1043
95
7
Returns: 578247193
69
6
Returns: 41372158
76
1
Returns: 17
61
7
Returns: 37983727
45
4
Returns: 102579
85
8
Returns: 813998849
1
12
Returns: 846432860