1390.4つの要因[JavaScript]

整数配列numsが与えられた場合、これらの整数の因子の合計を、配列内の正確に4つの因子とともに返します。

配列内の質問の意味を満たす整数がない場合は、0が返されます。

例:
入力:nums = [21,4,7]
出力:32
説明:
21には4つの要素があります1、3、7、21
4には3つの要素があります:1、2、4
7には2つの要素があります:1 7の
答えは、21のすべての要素の合計です。

促す:

1 <= nums.length <= 10 ^ 4
1 <= nums [i] <= 10 ^ 5

出典:LeetCode
リンク:https ://leetcode-cn.com/problems/four-divisors

解決方法は、主にJavaScript es6のSetデータ構造を使用して重複を削除し、完全な二乗数の特別な例に注意を払います。
コード:

/**
 * @param {number[]} nums
 * @return {number}
    */
 const sumFourDivisors=nums=>{
    
    
    let ans = 0;
    for (let i = 0; i < nums. length; i++){
    
    
       const temp = help(nums[i]);
       if ( temp.size === 4) {
    
    
        ans += Array. from( temp.values( )).reduce((a, b) => a + b, 0);
          }
       }
       return ans;
    }
    function help(num){
    
    
       const max = Math. floor(Math. sqrt(num));
       const ans = new Set();
       let min = 1;
       while (min <= max) {
    
    
          if ( (num / min) %1==0){
    
    
              ans .add(min);
              ans. add(num/min);
          }
           min++ ;
        }
         return ans;
}

おすすめ

転載: blog.csdn.net/weixin_42345596/article/details/105093405