1922. Count Good Numbers
Description
A digit string is good if the digits (0-indexed) at even indices are even and the digits at odd indices are prime (2
, 3
, 5
, or 7
).
- For example,
"2582"
is good because the digits (2
and8
) at even positions are even and the digits (5
and2
) at odd positions are prime. However,"3245"
is not good because3
is at an even index but is not even.
Given an integer n
, return the total number of good digit strings of length n
. Since the answer may be large, return it modulo 109 + 7
.
A digit string is a string consisting of digits 0
through 9
that may contain leading zeros.
Example 1:
Input: n = 1 Output: 5 Explanation: The good numbers of length 1 are "0", "2", "4", "6", "8".
Example 2:
Input: n = 4 Output: 400
Example 3:
Input: n = 50 Output: 564908303
Constraints:
1 <= n <= 1015
Solutions
Solution 1: Fast Exponentiation
For a "good number" of length \(n\), the even-indexed positions have \(\lceil \frac{n}{2} \rceil = \lfloor \frac{n + 1}{2} \rfloor\) digits, and these positions can be filled with \(5\) different digits (\(0, 2, 4, 6, 8\)). The odd-indexed positions have \(\lfloor \frac{n}{2} \rfloor\) digits, and these positions can be filled with \(4\) different digits (\(2, 3, 5, 7\)). Therefore, the total number of "good numbers" of length \(n\) is:
We can use fast exponentiation to compute \(5^{\lceil \frac{n}{2} \rceil}\) and \(4^{\lfloor \frac{n}{2} \rfloor}\). The time complexity is \(O(\log n)\), and the space complexity is \(O(1)\).
1 2 3 4 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|