How to calculate power for large numbers in Pascal

1 Answer

0 votes
program PowerOfLargeNumberProgram;

type
  TDigitArray = array of Integer;

function PowerOfLargeNumber(base: Integer; exponent: Integer): TDigitArray;
var
  digits: TDigitArray;
  i, j, carry, temp: Integer;
begin
  SetLength(digits, 1);
  digits[0] := 1;

  for i := 1 to exponent do
  begin
    carry := 0;
    for j := 0 to High(digits) do
    begin
      temp := digits[j] * base + carry;
      digits[j] := temp mod 10;
      carry := temp div 10;
    end;

    while carry > 0 do
    begin
      SetLength(digits, Length(digits) + 1);
      digits[High(digits)] := carry mod 10;
      carry := carry div 10;
    end;
  end;

  PowerOfLargeNumber := digits;
end;

procedure PrintDigits(digits: TDigitArray);
var
  i: Integer;
begin
  for i := High(digits) downto 0 do
    Write(digits[i]);
  WriteLn;
end;

var
  base, exponent: Integer;
  resultDigits: TDigitArray;
begin
  base := 2; exponent := 15;
  resultDigits := PowerOfLargeNumber(base, exponent);
  Write('2^15 = ');
  PrintDigits(resultDigits);

  exponent := 100;
  resultDigits := PowerOfLargeNumber(base, exponent);
  Write('2^100 = ');
  PrintDigits(resultDigits);
end.




(*
run:
  
2^15 = 32768
2^100 = 1267650600228229401496703205376

*)


 



answered Aug 2, 2025 by avibootz

Related questions

1 answer 105 views
1 answer 78 views
1 answer 82 views
1 answer 100 views
1 answer 88 views
...