# Fraction Class

You are developing a simple calculator and your task is to create a Python class

`Fraction`

which represents a mathematical fraction.The class should have 5 magic methods:

`__add__`

: This method should take another Fraction object as an argument and return a new Fraction object which is the sum of the original Fraction and the argument Fraction.

`__sub__`

: This method should take another Fraction object as an argument and return a new Fraction object which is the result of the original Fraction subtracted by the argument Fraction.

`__mul__`

: This method should take another Fraction object as an argument and return a new Fraction object which is the result of the original Fraction multiplied by the argument Fraction.

`__truediv__`

: This method should take another Fraction object as an argument and return a new Fraction object which is the result of the original Fraction divided by the argument Fraction. If the argument Fraction has a numerator of zero, this method should raise a`ZeroDivisionError`

.

`__str__`

: This method should return the fraction in the`numerator / denominator`

format. The method should return a string representation of the fraction in its simplest form (for example, "2 / 3" instead of "4 / 6"). To simplify a fraction, divide the numerator and the denominator by their greatest common divisor (GCD).

The Fraction class should be able to be instantiated with two parameters, a

`numerator`

and a `denominator`

. Both parameters should be integers, with the `denominator`

defaulting to `1`

if not provided. If the denominator is 0, the program should raise a `ValueError`

in the `__init__`

method.Input | Output |

`f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1+f2; print(f3)` | 5 / 6 |

`f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1-f2; print(f3)` | 1 / 6 |

`f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 * f2; print(f3)` | 1 / 6 |

`f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 / f2; print(f3)` | 3 / 2 |

`f1 = Fraction(1, 2); f2 = Fraction(0, 3); f3 = f1 / f2; print(f3)` | ZeroDivisionError: You can't divide by zero! |

`f1 = Fraction(1, 0);` | ValueError: The denominator cannot be zero! |

#### Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB