22 lines
527 B
Text
22 lines
527 B
Text
const func integer: intPow (in var integer: base, in var integer: exponent) is func
|
|
result
|
|
var integer: result is 0;
|
|
begin
|
|
if exponent < 0 then
|
|
raise(NUMERIC_ERROR);
|
|
else
|
|
if odd(exponent) then
|
|
result := base;
|
|
else
|
|
result := 1;
|
|
end if;
|
|
exponent := exponent div 2;
|
|
while exponent <> 0 do
|
|
base *:= base;
|
|
if odd(exponent) then
|
|
result *:= base;
|
|
end if;
|
|
exponent := exponent div 2;
|
|
end while;
|
|
end if;
|
|
end func;
|