PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/bigint-mod-arith/src/ts

Просмотр файла: modInv.ts

import { eGcd } from './egcd'
import { toZn } from './toZn'
/**
 * Modular inverse.
 *
 * @param a The number to find an inverse for
 * @param n The modulo
 *
 * @throws {@link RangeError} if a does not have inverse modulo n
 *
 * @returns The inverse modulo n
 */
export function modInv (a: number|bigint, n: number|bigint): bigint {
  const egcd = eGcd(toZn(a, n), n)
  if (egcd.g !== 1n) {
    throw new RangeError(`${a.toString()} does not have inverse modulo ${n.toString()}`) // modular inverse does not exist
  } else {
    return toZn(egcd.x, n)
  }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!