2
// https://en.wikipedia.org/wiki/Modular_exponentiation3
static modular_pow(base, exponent, modulus) {4
if (modulus === 1n) return 0n;7
while (exponent > 0n) {8
if (exponent % 2n == 1n) result = (result * base) % modulus;9
exponent = exponent >> 1n;10
base = (base * base) % modulus;16
var countGoodNumbers = function (n) {17
// NOTE: 0n, 1n, 2n, 3n, 4n, 5n are numbers in BigInt19
n = BigInt(n); // convert to BigInt, to avoid no rounding issues23
MOD = BigInt(Math.pow(10, 9) + 7);27
(Math1.modular_pow(4n, odds, MOD) * Math1.modular_pow(5n, evens, MOD)) % MOD