program LastNDigits;
{$mode objfpc}{$H+}{$H-}
{
This program demonstrates how to extract the last N digits
from an integer using Free Pascal.
The technique is simple:
- To get the last N digits, compute: number mod 10^N
- This avoids string conversions and is efficient.
The program uses:
* A dedicated function for clarity and reuse
* Built‑in power function (IntPower)
* Clear comments explaining each step
}
uses
Math; { IntPower is defined here }
{
Extracts the last N digits from a given integer.
Parameters:
value : the original number
digits: how many digits to extract from the end
Returns:
The last N digits as an integer.
}
function GetLastNDigits(value, digits: Integer): Integer;
var
divisor: Int64; { use Int64 to avoid overflow for large powers }
begin
{ IntPower returns Extended, so we convert it to an integer }
divisor := Trunc(IntPower(10, digits));
Result := value mod divisor;
end;
var
number: Integer;
n: Integer;
extracted: Integer;
begin
{ Example values }
number := 987654321;
n := 4;
{ Call the function }
extracted := GetLastNDigits(number, n);
{ Display the result }
WriteLn('Original number: ', number);
WriteLn('Digits requested: ', n);
WriteLn('Last ', n, ' digits: ', extracted);
end.
{
run:
Original number: 987654321
Digits requested: 4
Last 4 digits: 4321
}