function IsFullSqr(n: integer): boolean;
begin
var (i, m) := (1, 1);
while m < n do
i += 2;
m += i
end;
Result := m = n;
var n := ReadInteger('n=');
Println('Вводите последовательность');
ReadSeqInteger(n)
.Where(p -> ((p mod 10) in [0, 4, 6]) and IsFullSqr(p))
.Count.Println
end.
Использовано свойство квадрата числа быть суммой последовательности нечетных чисел: 1+3+5+ ...
Квадраты четных чисел оканчиваются на 0, 4 или 6.
function IsFullSqr(n: integer): boolean;
begin
var (i, m) := (1, 1);
while m < n do
begin
i += 2;
m += i
end;
Result := m = n;
end;
begin
var n := ReadInteger('n=');
Println('Вводите последовательность');
ReadSeqInteger(n)
.Where(p -> ((p mod 10) in [0, 4, 6]) and IsFullSqr(p))
.Count.Println
end.
Использовано свойство квадрата числа быть суммой последовательности нечетных чисел: 1+3+5+ ...
Квадраты четных чисел оканчиваются на 0, 4 или 6.