

program z1;
var n,a,b,c,k: integer;
begin
k:=0;
read(n);
for a:=1 to n do
for b:=1 to a do
for c:=1 to b do
if ((a=b) or (b=c) or (c=a)) and (a < b+c) and (b < a+c) and (c < b+a) then k:=k+1;
write (k)
end.
Объяснение:
(a=b) or (b=c) or (c=a) - любые две стороны равны
(a < b+c) and (b < a+c) and (c < b+a) - длина каждой стороны меньше суммы двух других сторон