DyrmanСумма квадратов катетов равна квадрату гипотенузы.
Загвоздка не в этом.
По-моему такая функция подойдёт. Она возвращает индекс с самым маленьким значением.
function min(array)
local l = length(array);
local index = {};
local r;
for i1, n1 in array do
index[i1] = 0;
for i2, n2 in array do
if n1 < n2 then
index[i1] = index[i1] + 1;
end;
end;
end;
for i, c in index do
if c == l - 1 then
r = i;
end;
end;
return r;
end;
При условии, что индекс заносимого в функцию аргумента - имя города, а значение - дистанция. То есть возвращать она будет имя ближайшего города (из тех, что были в массиве array).