- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/rsabcmath.php
- Класс: CRsaBcmathProvider
- Вызов: CRsaBcmathProvider::powmod
static function powmod($n, $p, $m)
{
if(function_exists('bcpowmod'))
return bcpowmod($n, $p, $m);
$out = '1';
do
{
if(!bccomp(bcmod($p, '2'), '1'))
{
$out = bcmod(bcmul($out, $n), $m);
}
$n = bcmod(bcpow($n, '2'), $m);
$p = bcdiv($p, '2');
}
while(bccomp($p, '0'));
return $out;
}