How to generate an N-digit integer random number in Pascal

1 Answer

0 votes
program GenerateNDigitNumber;

function GenerateNDigitNumber(n: integer): longint;
var
  lower_bound, upper_bound: longint;
begin
  if n < 1 then
  begin
    writeln('Error: n must be a positive integer (>= 1).');
    GenerateNDigitNumber := -1;
    exit;
  end;
  
  Randomize;

  if n = 1 then
    lower_bound := 0
  else
    lower_bound := trunc(exp((n - 1) * ln(10)));

  upper_bound := trunc(exp(n * ln(10))) - 1;

  GenerateNDigitNumber := lower_bound + Random(upper_bound - lower_bound + 1);
end;

begin
  writeln(GenerateNDigitNumber(1));
  writeln(GenerateNDigitNumber(4));
  writeln(GenerateNDigitNumber(10));
end.




(*
run:

5
8561
1122746216

*)

 



answered Nov 27, 2025 by avibootz
edited Nov 27, 2025 by avibootz
...