사용자:Riemann/numero

리버티게임, 모두가 만들어가는 자유로운 게임
요령 => 아래 변수들의 첫번째 인자들을 내용에 맞게 자르고 붙여넣어주세요

!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 윗부분은 만지지 마시오 절대로!!!!!!!!!!!!!!!!!






!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!!

이 플러그인에 대한 설명문서는 사용자:Riemann/numero/설명문서에서 만들 수 있습니다.

		 
/* powerMod */
function powerMod(root,expo,mod) {
    var power = 1;
    var expo2 = expo.toString(2);
    var expoLen = expo2.length;
    for (i = 0; i < expoLen; i++) {
        power = (power * power) % mod;
        power = (power * Math.pow(root, 1 * expo2[i])) % mod;
    }
    return power;
}

/* gcd */
function gcd(x, y) {
    if (x == 0 || y == 0) {
        return undefined;
    }
    var a = Math.abs(x);
    var b = Math.abs(y);
    var c;
    while (c != 0) {
        c = a % b;
        a = b; b = c;
    }
    return a;
}


/* invMod */
function invMod(zahl, mod) {
    if (zahl == 0 || mod == 0) {
        return undefined;
    }
    var a = Math.abs(mod);
    var b = Math.abs(zahl) % a;
    var qtnt = [1];
    var c;
    var p = 1;
    var q, r;
    while (c != 0) {
        c = a % b;
        qtnt.push(0 - Math.floor(a / b));
        a = b; b = c;
    }
    q = qtnt[qtnt.length - 2];
    for (i = qtnt.length - 3; i > 0; i--) {
        r = p; p = q; q = r + q * qtnt[i];
    }
    while (q < 0) {
        q+= mod;
    }
    return q % mod;
}