Plain text C C# C++ Go Haskell HTML Java JavaScript Jinja2 JSX Markdown Perl PHP PostgreSQL Python 3 Raku Rust Sh SQL SQLite TypeScript TypeScript-JSX Share (delete after 24 hours) Share procedure mod (integer val x, integer val n) -> integer integer result; { if n = 1 then return x; fi result <- x - x / n * n; if result < 0 then return result + n; else return result; fi } procedure even (integer val x) -> boolean { return mod(x, 2) = 0; } procedure modpow (integer val base, integer val exponent, integer val modulus) -> integer { if exponent = 0 then return 1; fi if exponent = 1 then return base; fi if even(exponent) then return modpow(mod(base * base, modulus), exponent / 2, modulus); else return mod(base * modpow(base, exponent - 1, modulus), modulus); fi } procedure main () { writeln modpow(3625, 124, 135); }