Trying to find factors of a number in JS

前端 未结 13 2899
陌清茗
陌清茗 2021-02-19 04:52

I am just starting JS, and understand the concept of finding a factor. However, this snippet of code is what I have so far. I have the str variable that outputs nothing but the

13条回答
  •  自闭症患者
    2021-02-19 05:37

    I came looking for an algorithm for this for use in factoring quadratic equations, meaning I need to consider both positive and negative numbers and factors. The below function does that and returns a list of factor pairs. Fiddle.

    function getFactors(n) {
      if (n === 0) {return "∞";} // Deal with 0
      if (n % 1 !== 0) {return "The input must be an integer.";} // Deal with non-integers
    
      // Check only up to the square root of the absolute value of n
      // All factors above that will pair with factors below that
      var absval_of_n = Math.abs(n),
          sqrt_of_n = Math.sqrt(absval_of_n),
          numbers_to_check = [];
      for (var i=1; i <= sqrt_of_n; i++) {
        numbers_to_check.push(i);
      }
    
      // Create an array of factor pairs
      var factors = [];
      for (var i=0; i <= numbers_to_check.length; i++) {
        if (absval_of_n % i === 0) {
          // Include both positive and negative factors
          if (n>0) {
            factors.push([i, absval_of_n/i]);
            factors.push([-i, -absval_of_n/i]);
          } else {
            factors.push([-i, absval_of_n/i]);
            factors.push([i, -absval_of_n/i]);
          }
        }
      }
    
      // Test for the console
      console.log("FACTORS OF "+n+":\n"+
                  "There are "+factors.length+" factor pairs.");
      for (var i=0; i

提交回复
热议问题