개발자 톡

연습문제 톡 바이러스

JS

등록일
2024-11-08 14:05:22
조회수
34
작성자
vavoya6324

BigInt 필수


const fs = require('fs');


let [size, base, exponential] = fs.readFileSync('input.txt', 'utf8').trim().split(' ').map(BigInt);
const mod = 1000000007n;  // BigInt로 변환
let stack = 1n;
let result = 1n;


while (exponential > 0n) {  // BigInt에서 0도 0n으로 표기
    if (stack === 1n) {
        stack = base % mod;
    } else {
        stack = (stack * stack) % mod;
    }


    if ((exponential & 1n) === 1n) result = (result * stack) % mod;
    exponential >>= 1n;  // BigInt에서도 비트 이동 가능
}


console.log(((result * (size % mod)) % mod).toString());
#바이러스

이 카테고리의 톡 더보기