1. Современный вариант
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('N=');
Range(1,n).Select(i->(i.ToString,(i*i).ToString)).
Where(t->t[0]=t[1].Right(t[0].Length)).Println;
end.
Пример
N= 1000
(1,1) (5,25) (6,36) (25,625) (76,5776) (376,141376) (625,390625)
2. А вот так примерно учат в большинстве школ
var
n,i,j,li,li2:integer;
si,si2:string;
begin
Write('N= '); Read(n);
for i:=1 to n do begin
Str(i,si);
li:=Length(si);
Str(i*i,si2);
li2:=Length(si2);
si2:=Copy(si2,li2+1-li,li);
if si=si2 then Write('(',si,',',i*i,') ')
end
end.