Skip to content

Commit 897f1d0

Browse files
PatOnTheBackcclauss
authored andcommitted
Improved Formatting and Style of Math Algos (TheAlgorithms#960)
* Improved Formatting and Style I improved formatting and style to make PyLama happier. Linters used: - mccabe - pep257 - pydocstyle - pep8 - pycodestyle - pyflakes - pylint - isort * Create volume.py This script calculates the volumes of various shapes. * Delete lucasSeries.py * Revert "Delete lucasSeries.py" This reverts commit 64c19f7. * Update lucasSeries.py
1 parent 2ad5be9 commit 897f1d0

13 files changed

+314
-157
lines changed

maths/Binary_Exponentiation.py

+14-12
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
1-
#Author : Junth Basnet
2-
#Time Complexity : O(logn)
1+
"""Binary Exponentiation."""
2+
3+
# Author : Junth Basnet
4+
# Time Complexity : O(logn)
5+
36

47
def binary_exponentiation(a, n):
5-
8+
69
if (n == 0):
710
return 1
8-
11+
912
elif (n % 2 == 1):
1013
return binary_exponentiation(a, n - 1) * a
11-
14+
1215
else:
1316
b = binary_exponentiation(a, n / 2)
1417
return b * b
1518

16-
19+
1720
try:
18-
base = int(input('Enter Base : '))
19-
power = int(input("Enter Power : "))
21+
BASE = int(input('Enter Base : '))
22+
POWER = int(input("Enter Power : "))
2023
except ValueError:
21-
print ("Invalid literal for integer")
24+
print("Invalid literal for integer")
2225

23-
result = binary_exponentiation(base, power)
24-
print("{}^({}) : {}".format(base, power, result))
25-
26+
RESULT = binary_exponentiation(BASE, POWER)
27+
print("{}^({}) : {}".format(BASE, POWER, RESULT))

maths/Find_Min.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1+
"""Find Minimum Number in a List."""
2+
3+
14
def main():
2-
def findMin(x):
3-
minNum = x[0]
5+
"""Find Minimum Number in a List."""
6+
def find_min(x):
7+
min_num = x[0]
48
for i in x:
5-
if minNum > i:
6-
minNum = i
7-
return minNum
9+
if min_num > i:
10+
min_num = i
11+
return min_num
12+
13+
print(find_min([0, 1, 2, 3, 4, 5, -3, 24, -56])) # = -56
814

9-
print(findMin([0,1,2,3,4,5,-3,24,-56])) # = -56
1015

1116
if __name__ == '__main__':
1217
main()

maths/Prime_Check.py

+26-23
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1+
"""Prime Check."""
2+
13
import math
24
import unittest
35

46

5-
def primeCheck(number):
7+
def prime_check(number):
68
"""
9+
Check to See if a Number is Prime.
10+
711
A number is prime if it has exactly two dividers: 1 and itself.
812
"""
913
if number < 2:
@@ -24,31 +28,30 @@ def primeCheck(number):
2428

2529
class Test(unittest.TestCase):
2630
def test_primes(self):
27-
self.assertTrue(primeCheck(2))
28-
self.assertTrue(primeCheck(3))
29-
self.assertTrue(primeCheck(5))
30-
self.assertTrue(primeCheck(7))
31-
self.assertTrue(primeCheck(11))
32-
self.assertTrue(primeCheck(13))
33-
self.assertTrue(primeCheck(17))
34-
self.assertTrue(primeCheck(19))
35-
self.assertTrue(primeCheck(23))
36-
self.assertTrue(primeCheck(29))
31+
self.assertTrue(prime_check(2))
32+
self.assertTrue(prime_check(3))
33+
self.assertTrue(prime_check(5))
34+
self.assertTrue(prime_check(7))
35+
self.assertTrue(prime_check(11))
36+
self.assertTrue(prime_check(13))
37+
self.assertTrue(prime_check(17))
38+
self.assertTrue(prime_check(19))
39+
self.assertTrue(prime_check(23))
40+
self.assertTrue(prime_check(29))
3741

3842
def test_not_primes(self):
39-
self.assertFalse(primeCheck(-19),
40-
"Negative numbers are not prime.")
41-
self.assertFalse(primeCheck(0),
42-
"Zero doesn't have any divider, primes must have two")
43-
self.assertFalse(primeCheck(1),
44-
"One just have 1 divider, primes must have two.")
45-
self.assertFalse(primeCheck(2 * 2))
46-
self.assertFalse(primeCheck(2 * 3))
47-
self.assertFalse(primeCheck(3 * 3))
48-
self.assertFalse(primeCheck(3 * 5))
49-
self.assertFalse(primeCheck(3 * 5 * 7))
43+
self.assertFalse(prime_check(-19),
44+
"Negative numbers are not prime.")
45+
self.assertFalse(prime_check(0),
46+
"Zero doesn't have any divider, primes must have two")
47+
self.assertFalse(prime_check(1),
48+
"One just have 1 divider, primes must have two.")
49+
self.assertFalse(prime_check(2 * 2))
50+
self.assertFalse(prime_check(2 * 3))
51+
self.assertFalse(prime_check(3 * 3))
52+
self.assertFalse(prime_check(3 * 5))
53+
self.assertFalse(prime_check(3 * 5 * 7))
5054

5155

5256
if __name__ == '__main__':
5357
unittest.main()
54-

maths/abs.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
"""Absolute Value."""
22

33

4-
def absVal(num):
4+
def abs_val(num):
55
"""
66
Find the absolute value of a number.
77
8-
>>absVal(-5)
8+
>>abs_val(-5)
99
5
10-
>>absVal(0)
10+
>>abs_val(0)
1111
0
1212
"""
1313
if num < 0:
1414
return -num
15-
else:
16-
return num
15+
16+
# Returns if number is not < 0
17+
return num
1718

1819

1920
def main():
2021
"""Print absolute value of -34."""
21-
print(absVal(-34)) # = 34
22+
print(abs_val(-34)) # = 34
2223

2324

2425
if __name__ == '__main__':

maths/extended_euclidean_algorithm.py

+37-16
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,38 @@
1+
"""
2+
Extended Euclidean Algorithm.
3+
4+
Finds 2 numbers a and b such that it satisfies
5+
the equation am + bn = gcd(m, n) (a.k.a Bezout's Identity)
6+
"""
7+
18
# @Author: S. Sharma <silentcat>
29
# @Date: 2019-02-25T12:08:53-06:00
310
# @Email: silentcat@protonmail.com
4-
# @Last modified by: silentcat
5-
# @Last modified time: 2019-02-26T07:07:38-06:00
11+
# @Last modified by: PatOnTheBack
12+
# @Last modified time: 2019-07-05
613

714
import sys
815

9-
# Finds 2 numbers a and b such that it satisfies
10-
# the equation am + bn = gcd(m, n) (a.k.a Bezout's Identity)
16+
1117
def extended_euclidean_algorithm(m, n):
12-
a = 0; aprime = 1; b = 1; bprime = 0
13-
q = 0; r = 0
18+
"""
19+
Extended Euclidean Algorithm.
20+
21+
Finds 2 numbers a and b such that it satisfies
22+
the equation am + bn = gcd(m, n) (a.k.a Bezout's Identity)
23+
"""
24+
a = 0
25+
a_prime = 1
26+
b = 1
27+
b_prime = 0
28+
q = 0
29+
r = 0
1430
if m > n:
15-
c = m; d = n
31+
c = m
32+
d = n
1633
else:
17-
c = n; d = m
34+
c = n
35+
d = m
1836

1937
while True:
2038
q = int(c / d)
@@ -24,28 +42,31 @@ def extended_euclidean_algorithm(m, n):
2442
c = d
2543
d = r
2644

27-
t = aprime
28-
aprime = a
29-
a = t - q*a
45+
t = a_prime
46+
a_prime = a
47+
a = t - q * a
3048

31-
t = bprime
32-
bprime = b
33-
b = t - q*b
49+
t = b_prime
50+
b_prime = b
51+
b = t - q * b
3452

3553
pair = None
3654
if m > n:
37-
pair = (a,b)
55+
pair = (a, b)
3856
else:
39-
pair = (b,a)
57+
pair = (b, a)
4058
return pair
4159

60+
4261
def main():
62+
"""Call Extended Euclidean Algorithm."""
4363
if len(sys.argv) < 3:
4464
print('2 integer arguments required')
4565
exit(1)
4666
m = int(sys.argv[1])
4767
n = int(sys.argv[2])
4868
print(extended_euclidean_algorithm(m, n))
4969

70+
5071
if __name__ == '__main__':
5172
main()

maths/fermat_little_theorem.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55

66

77
def binary_exponentiation(a, n, mod):
8-
8+
99
if (n == 0):
1010
return 1
11-
11+
1212
elif (n % 2 == 1):
1313
return (binary_exponentiation(a, n - 1, mod) * a) % mod
14-
14+
1515
else:
1616
b = binary_exponentiation(a, n / 2, mod)
1717
return (b * b) % mod

maths/greater_common_divisor.py

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
1-
# Greater Common Divisor - https://en.wikipedia.org/wiki/Greatest_common_divisor
1+
"""
2+
Greater Common Divisor.
3+
4+
Wikipedia reference: https://en.wikipedia.org/wiki/Greatest_common_divisor
5+
"""
6+
7+
28
def gcd(a, b):
9+
"""Calculate Greater Common Divisor (GCD)."""
310
return b if a == 0 else gcd(b % a, a)
411

12+
513
def main():
14+
"""Call GCD Function."""
615
try:
716
nums = input("Enter two Integers separated by comma (,): ").split(',')
8-
num1 = int(nums[0]); num2 = int(nums[1])
17+
num_1 = int(nums[0])
18+
num_2 = int(nums[1])
919
except (IndexError, UnboundLocalError, ValueError):
1020
print("Wrong Input")
11-
print(f"gcd({num1}, {num2}) = {gcd(num1, num2)}")
21+
print(f"gcd({num_1}, {num_2}) = {gcd(num_1, num_2)}")
22+
1223

1324
if __name__ == '__main__':
1425
main()
15-

maths/modular_exponential.py

+18-13
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
1-
def modularExponential(base, power, mod):
2-
if power < 0:
3-
return -1
4-
base %= mod
5-
result = 1
1+
"""Modular Exponential."""
62

7-
while power > 0:
8-
if power & 1:
9-
result = (result * base) % mod
10-
power = power >> 1
11-
base = (base * base) % mod
12-
return result
3+
4+
def modular_exponential(base, power, mod):
5+
"""Calculate Modular Exponential."""
6+
if power < 0:
7+
return -1
8+
base %= mod
9+
result = 1
10+
11+
while power > 0:
12+
if power & 1:
13+
result = (result * base) % mod
14+
power = power >> 1
15+
base = (base * base) % mod
16+
return result
1317

1418

1519
def main():
16-
print(modularExponential(3, 200, 13))
20+
"""Call Modular Exponential Function."""
21+
print(modular_exponential(3, 200, 13))
1722

1823

1924
if __name__ == '__main__':
20-
main()
25+
main()

0 commit comments

Comments
 (0)