• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/rsabcmath.php
  • Класс: CRsaBcmathProvider
  • Вызов: CRsaBcmathProvider::ext
static function ext($e1, $em) 
{
	$u1 = '1';
	$u2 = '0';
	$u3 = $em;
	$v1 = '0';
	$v2 = '1';
	$v3 = $e1;

	while(bccomp($v3, 0) != 0) 
	{
		$qt = bcdiv($u3, $v3, 0);
		$t1 = bcsub($u1, bcmul($qt, $v1));
		$t2 = bcsub($u2, bcmul($qt, $v2));
		$t3 = bcsub($u3, bcmul($qt, $v3));
		$u1 = $v1;
		$u2 = $v2;
		$u3 = $v3;
		$v1 = $t1;
		$v2 = $t2;
		$v3 = $t3;
		$z  = '1';
	}

	$uu = $u1;
	$vv = $u2;

	if(bccomp($vv, 0) == -1) 
		$ret = bcadd($vv, $em);
	else 
		$ret = $vv;

	return $ret;
}