code 31204; procedure LNG INT POWER(U,EXPONENT,RESULT); value EXPONENT; integer EXPONENT; integer array U,RESULT; begin integer MAX,I,N; MAX:=U[0] * EXPONENT; begin integer array Y,Z,H[0:MAX]; comment Y:=1, Z:=U; Y[0]:=Y[1]:=1; for I:=U[0] step -1 until 0 do Z[I]:=U[I]; HALVE: N:=EXPONENT//2; if N+N=EXPONENT then goto SQUARE Z; LNG INT MULT(Y,Z,H); for I:=H[0] step -1 until 0 do Y[I]:=H[I]; if N=0 then goto READY; SQUARE Z: LNG INT MULT(Z,Z,H); for I:=H[0] step -1 until 0 do Z[I]:=H[I]; EXPONENT:=N; goto HALVE; READY: for I:=Y[0] step -1 until 0 do RESULT[I]:=Y[I] end end LNG INT POWER; eop