27 lines
543 B
ObjectPascal
27 lines
543 B
ObjectPascal
Program ModularExponentiation(output);
|
|
|
|
uses
|
|
gmp;
|
|
|
|
var
|
|
a, b, m, r: mpz_t;
|
|
fmt: pchar;
|
|
|
|
begin
|
|
mpz_init_set_str(a, '2988348162058574136915891421498819466320163312926952423791023078876139', 10);
|
|
mpz_init_set_str(b, '2351399303373464486466122544523690094744975233415544072992656881240319', 10);
|
|
mpz_init(m);
|
|
mpz_ui_pow_ui(m, 10, 40);
|
|
|
|
mpz_init(r);
|
|
mpz_powm(r, a, b, m);
|
|
|
|
fmt := '%Zd' + chr(13) + chr(10);
|
|
mp_printf(fmt, @r); (* ...16808958343740453059 *)
|
|
|
|
mpz_clear(a);
|
|
mpz_clear(b);
|
|
mpz_clear(m);
|
|
mpz_clear(r);
|
|
end.
|