Алгоритм тупой, не оптимизированный, решает задачу в лоб)) т.е. то что здают обычно в лабах....
выглядит как то так))

{.................}
Const n=15;
Var A:array [1..n] of integer;
i,j: integer;
now:integer;
count:integer;
duplicate:boolean;

begin

{..................}
count:=0;
for i:=1 to n do
begin
now:=A[i] ; {берём очередное число}
duplicate=false; {пердположим повторений нет}
for j:=1 to n do {просматриваем весь массив}
begin {исключая now, (A[i])}
if i<>j then {иначе точно повторение)) }
if now==A[j] then {если найден повтор}
begin
duplicate=true; {говорим что он найден}
break; {завершаем внутренний цикл}
end;
end
if (not duplicate) count=count+1;
end
writeln('Unique ',count,' elements');
end.

и чем Free Pascal вообще отличается от турбо?
Free Pascal - это OpenSource, gnu..... а borland Turbo pascal - это не gnu и точно не OpenSource, это раз, два - Free Pascal есть и под *nix и под win32, win64, а турбо в общем под Дос и win 3.1/3.11 )))