''' Define prime factors of integer m. Return a list of pairs: (prime divisor, its exponent) For example: factorize(100) [(2, 2), (5, 2)] foctorize(1024) [(2, 10)] ''' def factorize(m): res = [] d = 2 while d*d <= m: e = 0 while m%d == 0: m //= d e += 1 if e > 0: res.append((d, e)) d += 1 if m != 1: res.append((m, 1)) return res def main(): print("Factorization of integers") while True: s = input("n: ") try: n = int(s) except ValueError: break res = factorize(n) print(res) if __name__ == "__main__": main()