"""Implementation of Basic Math in Python.""" import math def prime_factors(n): """Find Prime Factors.""" pf = [] while n % 2 == 0: pf.append(2) n = int(n / 2) for i in range(3, int(math.sqrt(n)) + 1, 2): while n % i == 0: pf.append(i) n = int(n / i) if n > 2: pf.append(n) return pf def number_of_divisors(n): """Calculate Number of Divisors of an Integer.""" div = 1 temp = 1 while n % 2 == 0: temp += 1 n = int(n / 2) div = div * (temp) for i in range(3, int(math.sqrt(n)) + 1, 2): temp = 1 while n % i == 0: temp += 1 n = int(n / i) div = div * (temp) return div def sum_of_divisors(n): """Calculate Sum of Divisors.""" s = 1 temp = 1 while n % 2 == 0: temp += 1 n = int(n / 2) if temp > 1: s *= (2**temp - 1) / (2 - 1) for i in range(3, int(math.sqrt(n)) + 1, 2): temp = 1 while n % i == 0: temp += 1 n = int(n / i) if temp > 1: s *= (i**temp - 1) / (i - 1) return s def euler_phi(n): """Calculte Euler's Phi Function.""" l = prime_factors(n) l = set(l) s = n for x in l: s *= (x - 1) / x return s def main(): """Print the Results of Basic Math Operations.""" print(prime_factors(100)) print(number_of_divisors(100)) print(sum_of_divisors(100)) print(euler_phi(100)) if __name__ == '__main__': main()