#! /usr/bin/python3

# a class representing complex numbers

class Complex:
    
    def __init__(self, real, imaginary):
        self.__real = int(real)
        self.__imag = int(imaginary)
        
    def __str__(self):
        return str(self.__real) + " + " + str(self.__imag) + "i"
    
    def __add__(self, other):
        return Complex(self.__real + other.__real, self.__imag + other.__imag)
    
    def __sub__(self, other):
        return Complex(self.__real - other.__real, self.__imag - other.__imag)
    
    
    #(a+bi)(c+di) = (ac−bd) + (ad+bc)i
    # a = self.__real
    # b = self.__imag
    # c = other.__real
    # d = other.__imag
    def __mul__(self, other):
        new_real = self.__real * other.__real - self.__imag * other.__imag
        new_imag = self.__real * other.__imag + self.__imag * other.__real
        return Complex(new_real, new_imag)
        
if __name__ == "__main__":
    c1 = Complex(3,2)
    c2 = Complex(1,7)
    print("c1:", c1)
    print("c2:", c2)
    print("c1 + c2:", c1 + c2)
    print("c1 - c2:", c1 - c2)
    print("c1 * c2:", c1 * c2)
    