매개 변수인 n,k을 받아 거듭제곱을 실행하고, 실제 계산 결과를 94,906,249로 나눈 나머지를 리턴해야 한다.
power(3, 40) // 19334827
Number 타입은 정수, 실수, 양수, 음수, 지수 등 모든 숫자 값을 나타낼 수 있고, 64비트 형식의 IEEE-754 표준을 따르기 때문에 유효 범위는 일반적으로 -9007199254740991 ~ 9007199254740991까지이다. 이 범위를 벗어나면 정확도 문제가 발생하기 때문에, 보통 큰 숫자를 계산 계산 할 때는 위와 같이 큰 숫자로 나눈 나머지로 계산한다.

function power(base, exponent) {
if (exponent === 0) return 1
if(exponent % 2 === 0){
let half = power(base ,(exponent / 2)) % 94906249
return (half * half) % 94906249
}
else{
let half = power (base , (exponent-1)/2)% 94906249
return (((half * half) % 94906249 )* base) % 94906249
}
}
N^((k-1)/2) * N^((k-1)/2)의 공식을 적용하여 재귀를 돌아준다.N^(k/2) * N^((k/2)참조