Формально, нужно найти максимальное натуральное N, такое, что существует натуральное k, что M = k * N^2 (N – сторона квадрата, k –количество квадратов), и вывести N^2.
Решаем в лоб: перебираем N от 44721 до 1, если M делится на N^2, выводим N^2. Большие N перебирать бессмысленно, N в квадрате будет слишком большим.
Программа:
var M, N: longint;
begin
read(M);
for N := 44721 downto 1 do
if M mod (N * N) = 0 then
begin
write(N * N);
break;
end
end.