请帮助将代码 Pascal 翻译成 JS?

Please help to translate code Pascal to JS?

我有任务:在 sheet 纸上,沿着网格线绘制一个矩形。之后,计算位于矩形内部但不在矩形边界上的网格节点数,以及矩形内部单个网格线段的数量。编写一个程序,使用此数据确定矩形的大小。

我有这个 Pascal 代码:

var
K,N,i,j:integer;
begin
readln(K,N);
for i:=1 to trunc(sqrt(K)) do
if K mod i = 0 then
begin
if i*(K div i+1)+(K div i)*(i+1)=N then writeln(i+1,' ',K div i+1);
end;
end.

这是我在 JavaScript 中的代码:

const a = [1000, 2065]

function Sum(K, N) {
  for (i = 1; i < Math.trunc(Math.sqrt(K)); i++) {
    if (K % i === 0 && i * (Math.floor(K / (i) + 1) + Math.floor(K / i) * (i + 1)) === N) {
      break;
    }
  }
  console.log(i + 1, Math.floor(K / (i)) + 1)
}
Sum(a[0], a[1]);

你能帮忙解释为什么我在 JavaScript 中的答案是错误的吗?

不确定您要实现的目标,但是此 javascript 代码产生与您的 Pascal 版本相同的输出 (26, 41):

onlinegdb.com

const K = 1000, N = 2065;
for (let i=1; i<Math.trunc(Math.sqrt(K)); i++)
  if (K % i === 0)
    if (i*(K / i+1)+(K / i)*(i+1) === N)
        console.log(i+1, K / i+1);

我认为您弄乱了 Math.floor 中的括号或类似内容。