LeetCode in Kotlin

1922. Count Good Numbers

Medium

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).

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:

Solution

class Solution {
    fun countGoodNumbers(n: Long): Int {
        val mod = 1000000007L
        var result = if (n % 2 == 0L) 1L else 5L
        var base = 20L
        var time = n / 2L
        while (time > 0) {
            if (time % 2L > 0) {
                result *= base
                result %= mod
            }
            time /= 2L
            base = base * base % mod
        }
        return result.toInt()
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy