Explorar el Código

Adding solution for 1390

Vinicius Teshima hace 2 semanas
padre
commit
298b2f7425
Se han modificado 1 ficheros con 42 adiciones y 0 borrados
  1. 42 0
      TypeScript/1390.ts

+ 42 - 0
TypeScript/1390.ts

@@ -0,0 +1,42 @@
+// 1390. Four Divisors
+
+
+function sumFourDivisors(nums: number[]): number {
+    let divisorsCache = new Map<number, number[]>()
+    function divisors(num: number): number[] {
+        if ( divisorsCache.has(num) ) { return divisorsCache.get(num) }
+        let ret: number[] = [1, num]
+        const limit: number = num-1
+        for ( let i = 2 ; i < limit; ++i ) {
+            if ( num % i == 0 ) {
+                ret.push(i);
+                if ( ret.length > 4 ) { break; }
+            }
+        }
+        divisorsCache.set(num, ret);
+        return ret;
+    }
+    let ret: number = 0;
+    let nums_size = nums.length;
+    for ( let i = 0; i < nums_size; ++i ) {
+        const divs: number[] = divisors(nums[i]);
+        if ( divs.length == 4 ) {
+            ret += divs[0] + divs[1] + divs[2] + divs[3];
+        }
+    }
+    return ret;
+};
+
+function main() {
+    function r(nums: number[], exp: number) {
+        console.log(`sumFourDivisors([${nums}]) = ${sumFourDivisors(nums)} | exp: ${exp}`)
+    }
+
+    r([21,4,7], 32)
+    r([21,21], 64)
+    r([1,2,3,4,5], 0)
+    r([1,2,3,4,5,6,7,8,9,10], 45)
+
+}
+
+main()