29 lines
779 B
Plaintext
29 lines
779 B
Plaintext
( ( mod-power
|
|
= base exponent modulus result
|
|
. !arg:(?base,?exponent,?modulus)
|
|
& !exponent:~<0
|
|
& 1:?result
|
|
& whl
|
|
' ( !exponent:>0
|
|
& ( ( mod$(!exponent.2):1
|
|
& mod$(!result*!base.!modulus):?result
|
|
& -1
|
|
| 0
|
|
)
|
|
+ !exponent
|
|
)
|
|
* 1/2
|
|
: ?exponent
|
|
& mod$(!base^2.!modulus):?base
|
|
)
|
|
& !result
|
|
)
|
|
& ( a
|
|
= 2988348162058574136915891421498819466320163312926952423791023078876139
|
|
)
|
|
& ( b
|
|
= 2351399303373464486466122544523690094744975233415544072992656881240319
|
|
)
|
|
& out$("last 40 digits = " mod-power$(!a,!b,10^40))
|
|
)
|