program HalfCheck;
function HalvesEqual(n: LongInt): Boolean;
var
s: string;
i, len, half: Integer;
begin
Str(n, s); { convert number to string }
len := Length(s);
if (len mod 2) <> 0 then
begin
HalvesEqual := False; { odd number of digits }
Exit;
end;
half := len div 2;
{ compare first half and second half }
for i := 1 to half do
if s[i] <> s[i + half] then
begin
HalvesEqual := False;
Exit;
end;
HalvesEqual := True;
end;
var
testNumbers: array[1..5] of LongInt = (1212, 123123, 45454545, 123, 1213);
i: Integer;
begin
for i := 1 to 5 do
begin
Write(testNumbers[i], ' -> ');
if HalvesEqual(testNumbers[i]) then
Writeln('equal halves')
else
Writeln('not equal');
end;
ReadLn;
end.
(*
run:
1212 -> equal halves
123123 -> equal halves
45454545 -> equal halves
123 -> not equal
1213 -> not equal
*)