• Модуль: 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;
}