Skip to content

Commit 1bf5b5b

Browse files
authored
Update four-divisors.py
1 parent 5989398 commit 1bf5b5b

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

Python/four-divisors.py

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,36 @@
11
# 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
326

27+
28+
# Time: O(n * sqrt(n))
29+
# Space: O(sqrt(n))
430
import itertools
531

632

7-
class Solution(object):
33+
class Solution2(object):
834
def sumFourDivisors(self, nums):
935
"""
1036
:type nums: List[int]
@@ -34,29 +60,3 @@ def factorize(x):
3460
p, q = facs[0][0], facs[1][0]
3561
result += (1 + p) * (1 + q)
3662
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

0 commit comments

Comments
 (0)