Problem Statement
She observes an interesting property of some prime numbers: after division by two (all divisions in this problem are rounded down, i.e., integer divisions) the new number is also prime. An example of such a prime number is 7, which after division becomes 3, which is also prime. Some numbers generate even longer sequences: {47, 23, 11, 5, 2} contains 5 consecutive prime numbers, for example.
The length of the sequence generated by a natural number K is defined as the number of times K can be divided by two before obtaining a number which is not prime. For example, the number 479 has length of only 2, because after two divisions the resulting number 119 is not prime (even though subsequent divisions produce the prime numbers 59, 29, 7 and 3).
Given
Definition
- Class:
- PrimeSequences
- Method:
- getLargestGenerator
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int getLargestGenerator(int N, int D)
- (be sure your method is public)
Notes
- A prime number is a natural number greater than one with exactly two distinct natural divisors: 1 and itself.
Constraints
- N will be between 2 and 10,000,000, inclusive.
- D will be between 1 and 10, inclusive.
Examples
10
2
Returns: 7
Here the optimal sequence is {7, 3}. Another sequence {5, 2} with the same length exists too, but the first one begins with a larger number.
42
3
Returns: 23
The optimal sequence is {23, 11, 5, 2}, which has length 4.
666
7
Returns: -1
Six hundred and sixty six is, apparently, not large enough to contain a sequence of length 7.
1337
5
Returns: 47
100000
5
Returns: 2879
There are not many sequences of length five or more.
40000
1
Returns: 39989
39989 is the largest prime number less than or equal to 40000.
18
3
Returns: 11
18
1
Returns: 17
18
5
Returns: -1
10
2
Returns: 7
42
4
Returns: 23
42
2
Returns: 23
42
6
Returns: -1
1337
5
Returns: 47
1337
1
Returns: 1327
1337
2
Returns: 1319
100000
6
Returns: 2879
100000
2
Returns: 99839
100000
4
Returns: 96959
100000
8
Returns: -1
1000000
6
Returns: 2879
1000000
2
Returns: 999959
1000000
8
Returns: -1
10000000
6
Returns: 4068479
10000000
2
Returns: 9999047
666
5
Returns: 47
666
4
Returns: 47
666
1
Returns: 661
1234
5
Returns: 47
1234
2
Returns: 1187
1234
8
Returns: -1
345345
6
Returns: 2879
345345
2
Returns: 344843
345345
1
Returns: 345329
345345
8
Returns: -1
64231
6
Returns: 2879
64231
9
Returns: -1
9348543
6
Returns: 4068479
9348543
4
Returns: 9256799
9348543
3
Returns: 9347879
2
1
Returns: 2
2
3
Returns: -1
3
1
Returns: 3
3
4
Returns: -1
19
3
Returns: 11
19
2
Returns: 11
22
3
Returns: 11
22
1
Returns: 19
22
2
Returns: 11
22
5
Returns: -1
24
4
Returns: 23
24
2
Returns: 23
177
5
Returns: 47
177
3
Returns: 167
199
5
Returns: 47
199
2
Returns: 179
199
1
Returns: 199
199
7
Returns: -1
2879
6
Returns: 2879
2879
2
Returns: 2879
2878
5
Returns: 1439
2878
4
Returns: 1439
2878
7
Returns: -1
2880
6
Returns: 2879
2880
2
Returns: 2879
2880
5
Returns: 2879
424242
6
Returns: 2879
424242
2
Returns: 424199
435566
6
Returns: 2879
435566
5
Returns: 2879
435566
9
Returns: -1
1234567
6
Returns: 2879
1234567
5
Returns: 1067999
9511197
5
Returns: 8624159
9428099
4
Returns: 9256799
9101919
4
Returns: 9063599
8970000
4
Returns: 8877119
9050699
5
Returns: 8624159
10000000
10
Returns: -1
9
3
Returns: -1