# HackerRank Python - Classes: Dealing with Complex Numbers

For this challenge, you are given two complex numbers, and you have to print the result of their addition, subtraction, multiplication, division and modulus operations.

The real and imaginary precision part should be correct up to two decimal places.

```import math

class Complex(object):
def __init__(self, real, imaginary):
self.real = real
self.imaginary = imaginary

a = self.real
b = self.imaginary
c = no.real
d = no.imaginary
return Complex(a + c, b + d)

def __sub__(self, no):
a = self.real
b = self.imaginary
c = no.real
d = no.imaginary
return Complex(a - c, b - d)

def __mul__(self, no):
a = self.real
b = self.imaginary
c = no.real
d = no.imaginary
real_mult = (a * c) - (b * d)
imag_mult = (a * d) + (b * c)
return Complex(real_mult, imag_mult)

def __truediv__(self, no):
a = self.real
b = self.imaginary
c = no.real
d = no.imaginary
real_numerator = a * c + b * d
imag_numerator = b * c - a * d
denom = c * c + d * d
real_div = real_numerator / denom
imag_div = imag_numerator / denom
return Complex(real_div, imag_div)

def mod(self):
a = self.real
b = self.imaginary
return Complex(math.sqrt(a ** 2 + b ** 2), 0)

def __str__(self):
if self.imaginary == 0:
result = '%.2f+0.00i' % (self.real)
elif self.real == 0:
if self.imaginary >= 0:
result = '0.00+%.2fi' % (self.imaginary)
else:
result = '0.00-%.2fi' % (abs(self.imaginary))
elif self.imaginary > 0:
result = '%.2f+%.2fi' % (self.real, self.imaginary)
else:
result = '%.2f-%.2fi' % (self.real, abs(self.imaginary))
return result

if __name__ == '__main__':
c = map(float, input().split())
d = map(float, input().split())
x = Complex(*c)
y = Complex(*d)
print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n')
```