You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
497 B
29 lines
497 B
2 years ago
|
! Print powers of integers.
|
||
|
|
||
|
let
|
||
|
func even (n : Integer) : Boolean ~
|
||
|
(n // 2) = 0;
|
||
|
|
||
|
func sqr (n : Integer) : Integer ~
|
||
|
n * n;
|
||
|
|
||
|
func power (b : Integer, n : Integer) : Integer ~
|
||
|
! assume n >= 0
|
||
|
if n = 0
|
||
|
then 1
|
||
|
else
|
||
|
if even (n)
|
||
|
then sqr (power (b, n/2))
|
||
|
else sqr (power (b, n/2)) * b;
|
||
|
|
||
|
var x : Integer;
|
||
|
var m : Integer
|
||
|
in
|
||
|
begin
|
||
|
getint (var x); getint (var m);
|
||
|
putint (x); put ('^'); putint (m);
|
||
|
put (' '); put ('='); put (' ');
|
||
|
putint (power (x, m));
|
||
|
puteol ()
|
||
|
end
|