ComplexNumber Class

You are asked to create a class ComplexNumber that encapsulates the behavior of a complex number. A complex number is a number that can be expressed in the form a + bi, where a and b are real numbers, and i is a solution of the equation . Because no real number satisfies this equation, i is called an imaginary number ().

Your ComplexNumber class should have the following attributes:

  • real: The real part of the complex number (a)

  • imaginary: The imaginary part of the complex number (b)

You have to implement these magic methods:

  • __add__: This method should add two complex numbers and return a new ComplexNumber object that represents the result: .

  • __sub__: This method should subtract one complex number from another and return a new ComplexNumber object that represents the result: .

  • __mul__: This method should multiply two complex numbers and return a new ComplexNumber object that represents the result: .

  • __truediv__: This method should divide one complex number by another and return a new ComplexNumber object that represents the result: .

Besides the numerical magic methods, you should also implement a __str__ magic method that would return the complex number as <real> + <imaginary> i.

Input

Output

print(ComplexNumber(1, 1) + ComplexNumber(2, 2)); print(ComplexNumber(2, 3) - ComplexNumber(1, 1)); print(ComplexNumber(2, 3) * ComplexNumber(1, 1)); print(ComplexNumber(2, 2) / ComplexNumber(1, 1)); print(ComplexNumber(1, 1) - ComplexNumber(2, 3))

3 + 3 i
1 + 2 i
-1 + 5 i
2.0 + 0.0 i
-1 + -2 i

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue