Skip to content

Commit 782012b

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent d1a5ae9 commit 782012b

File tree

1 file changed

+57
-53
lines changed

1 file changed

+57
-53
lines changed

maths/weird_number.py

Lines changed: 57 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,73 @@
11
from math import sqrt
22

3+
34
def factors(n):
45

5-
v = []
6-
v.append(1)
6+
v = []
7+
v.append(1)
78

8-
for i in range(2, int(sqrt(n)) + 1, 1):
9+
for i in range(2, int(sqrt(n)) + 1, 1):
910

11+
if n % i == 0:
12+
v.append(i)
13+
if int(n / i) != i:
14+
v.append(int(n / i))
15+
return v
1016

11-
if (n % i == 0):
12-
v.append(i)
13-
if (int(n / i) != i):
14-
v.append(int(n / i))
15-
return v
1617

1718
def abundant(n):
18-
sum = 0
19-
v = factors(n)
20-
for i in range(len(v)):
21-
sum += v[i]
22-
if (sum > n):
23-
return True
24-
else:
25-
return False
19+
sum = 0
20+
v = factors(n)
21+
for i in range(len(v)):
22+
sum += v[i]
23+
if sum > n:
24+
return True
25+
else:
26+
return False
27+
2628

2729
def semiPerfect(n):
28-
v = factors(n)
29-
v.sort(reverse = False)
30-
r = len(v)
31-
subset = [[0 for i in range(n + 1)]
32-
for j in range(r + 1)]
33-
34-
for i in range(r + 1):
35-
subset[i][0] = True
36-
37-
for i in range(1, n + 1):
38-
subset[0][i] = False
39-
40-
for i in range(1, r + 1):
41-
for j in range(1, n + 1):
42-
if (j < v[i - 1]):
43-
subset[i][j] = subset[i - 1][j]
44-
else:
45-
subset[i][j] = (subset[i - 1][j] or
46-
subset[i - 1][j - v[i - 1]])
47-
48-
if ((subset[r][n]) == 0):
49-
return False
50-
else:
51-
return True
30+
v = factors(n)
31+
v.sort(reverse=False)
32+
r = len(v)
33+
subset = [[0 for i in range(n + 1)] for j in range(r + 1)]
34+
35+
for i in range(r + 1):
36+
subset[i][0] = True
37+
38+
for i in range(1, n + 1):
39+
subset[0][i] = False
40+
41+
for i in range(1, r + 1):
42+
for j in range(1, n + 1):
43+
if j < v[i - 1]:
44+
subset[i][j] = subset[i - 1][j]
45+
else:
46+
subset[i][j] = subset[i - 1][j] or subset[i - 1][j - v[i - 1]]
47+
48+
if (subset[r][n]) == 0:
49+
return False
50+
else:
51+
return True
52+
5253

5354
def weird(n):
54-
if (abundant(n) == True and semiPerfect(n) == False):
55-
return True
56-
else:
57-
return False
55+
if abundant(n) == True and semiPerfect(n) == False:
56+
return True
57+
else:
58+
return False
59+
5860

5961
def main():
60-
n = 70
61-
if (weird(n)):
62-
print("Weird Number")
63-
else:
64-
print("Not Weird Number")
65-
62+
n = 70
63+
if weird(n):
64+
print("Weird Number")
65+
else:
66+
print("Not Weird Number")
67+
68+
6669
if __name__ == "__main__":
67-
import doctest
68-
doctest.testmod(verbose=True)
69-
main()
70+
import doctest
71+
72+
doctest.testmod(verbose=True)
73+
main()

0 commit comments

Comments
 (0)