为达到一定限制的所有数字获取成对的除数

Getting pairs of divisors for all numbers up to certain limit

我正在研究一种机制,使所有数字的所有除数对达到一定限度..

结果将是类似于 'times table' 的数组,但对于除法,我也想用 1 进行除法,因为这些很明显....

对象结构将是 {result, x, y} 例如 [{result:4,x:2,y:2},{result:6,x:2,y:3},{result:6,x:3,y:2},...]

对于那些用抽搐的手指点击否决票的人(并尖叫告诉我们代码!!!)- 这是一个自我回答的问题 因为我在 SO 上找不到它它将对未来的访客有用。所以看答案

这是一个答案

var getAllDivisors = function(limit) {
  var array = [];
  for (var num = 2; num <= limit; num++) {
    var square_root = Math.sqrt(num);
    for (var i = 2; i <= square_root; i++) {
      if (num % i == 0) {
        var div = (num / i);
        array.push({
          result: num,
          x: i,
          y: div
        });
        if (i * i != num)
          array.push({
            result: num,
            y: i,
            x: div
          });
      }
    }
  }
  return array;
}