note 72704 added to function.bcpowmod

From: Date: Tue, 30 Jan 2007 13:34:37 +0000
Subject: note 72704 added to function.bcpowmod
Groups: php.notes 
Request: Send a blank email to php-notes+get-122353@lists.php.net to get a copy of this message
I found a better way to emulate bcpowmod on PHP 4, which works with very big numbers too: function powmod($m,$e,$n) { if (intval(PHP_VERSION)>4) { return(bcpowmod($m,$e,$n)); } else { $r=""; while ($e!="0") { $t=bcmod($e,"4096"); $r=substr("000000000000".decbin(intval($t)),-12).$r; $e=bcdiv($e,"4096"); } $r=preg_replace("!^0+!","",$r); if ($r=="") $r="0"; $m=bcmod($m,$n); $erb=strrev($r); $q="1"; $a[0]=$m; for ($i=1;$i<strlen($erb);$i++) { $a[$i]=bcmod(bcmul($a[$i-1],$a[$i-1]),$n); } for ($i=0;$i<strlen($erb);$i++) { if ($erb[$i]=="1") { $q=bcmod(bcmul($q,$a[$i]),$n); } } return($q); } } ---- Server IP: 69.147.83.197 Probable Submitter: 89.132.88.122 ---- Manual Page -- http://www.php.net/manual/en/function.bcpowmod.php Edit -- https://master.php.net/note/edit/72704 Del: integrated -- https://master.php.net/note/delete/72704/integrated Del: useless -- https://master.php.net/note/delete/72704/useless Del: bad code -- https://master.php.net/note/delete/72704/bad+code Del: spam -- https://master.php.net/note/delete/72704/spam Del: non-english -- https://master.php.net/note/delete/72704/non-english Del: in docs -- https://master.php.net/note/delete/72704/in+docs Del: other reasons-- https://master.php.net/note/delete/72704 Reject -- https://master.php.net/note/reject/72704 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#122353) next »