File tree Expand file tree Collapse file tree 1 file changed +28
-28
lines changed Expand file tree Collapse file tree 1 file changed +28
-28
lines changed Original file line number Diff line number Diff line change 1
1
# Time: O(n * sqrt(n))
2
- # Space: O(sqrt(n))
2
+ # Space: O(1)
3
+
4
+ class Solution (object ):
5
+ def sumFourDivisors (self , nums ):
6
+ """
7
+ :type nums: List[int]
8
+ :rtype: int
9
+ """
10
+ result = 0
11
+ for num in nums :
12
+ facs , i = [], 1
13
+ while i * i <= num :
14
+ if num % i :
15
+ i += 1
16
+ continue
17
+ facs .append (i )
18
+ if i != num // i :
19
+ facs .append (num // i )
20
+ if len (facs ) > 4 :
21
+ break
22
+ i += 1
23
+ if len (facs ) == 4 :
24
+ result += sum (facs )
25
+ return result
3
26
27
+
28
+ # Time: O(n * sqrt(n))
29
+ # Space: O(sqrt(n))
4
30
import itertools
5
31
6
32
7
- class Solution (object ):
33
+ class Solution2 (object ):
8
34
def sumFourDivisors (self , nums ):
9
35
"""
10
36
:type nums: List[int]
@@ -34,29 +60,3 @@ def factorize(x):
34
60
p , q = facs [0 ][0 ], facs [1 ][0 ]
35
61
result += (1 + p ) * (1 + q )
36
62
return result
37
-
38
-
39
- # Time: O(n * sqrt(n))
40
- # Space: O(1)
41
- class Solution2 (object ):
42
- def sumFourDivisors (self , nums ):
43
- """
44
- :type nums: List[int]
45
- :rtype: int
46
- """
47
- result = 0
48
- for num in nums :
49
- facs , i = [], 1
50
- while i * i <= num :
51
- if num % i :
52
- i += 1
53
- continue
54
- facs .append (i )
55
- if i != num // i :
56
- facs .append (num // i )
57
- if len (facs ) > 4 :
58
- break
59
- i += 1
60
- if len (facs ) == 4 :
61
- result += sum (facs )
62
- return result
You can’t perform that action at this time.
0 commit comments