program RecursivePower;
function Power(x, y: Integer): Integer;
begin
// Base case: If the exponent is 0, return 1
if y = 0 then
Power := 1
else
// Recursive case: Multiply x with the result of Power(x, y - 1)
Power := x * Power(x, y - 1);
end;
var
result: Integer;
begin
// Test cases
WriteLn(Power(2, 3)); // Outputs 8
WriteLn(Power(2, 4)); // Outputs 16
WriteLn(Power(3, 2)); // Outputs 9
WriteLn(Power(3, 3)); // Outputs 27
WriteLn(Power(5, 4)); // Outputs 625
end.
(*
run:
8
16
9
27
625
*)