#include "num.h" Num::Num(int new_value, int new_modulo) { if (new_modulo != 0) { Num::value = (new_value % new_modulo); Num::modulo = new_modulo; } else { Num::value = new_value; Num::modulo = 0; } } Num& Num::operator=(const Num& other) { Num::value = other.value; Num::modulo = other.modulo; return *this; } Num Num::operator+(const Num& other) { int new_value = Num::value + other.value; return { new_value, Num::modulo }; } NUm Num::operator-(const Num& other) { int new_value = Num::value - other.value; return { new_value, Num::modulo }; } Num Num::operator*(const Num& other) { int new_value = Num::value * other.value; return { new_value, Num::modulo }; } Num Num::operator+(int num) { int new_value = Num::value + num; return { new_value, Num::modulo }; } Num Num::operator-(int dif_num) { int new_value = Num::value - dif_num; return { new_value, Num::modulo }; } Num Num::operator*(int dif_num) { int new_value = Num::value * dif_num; return { new_value, Num::modulo }; } Num& Num::operator+=(const Num& other) { Num::value += other.value; return *this; } Num& Num::operator-=(const Num& other) { Num::value -= other.value; return *this; } Num& Num::operator*=(const Num& other) { Num::value *= other.value; return *this; } Num& Num::operator+=(int num) { Num::value += num; return *this; } Num& Num::operator-=(int num) { Num::value -= num; return *this; } Num& Num::operator*=(int num) { Num::value *= num; return *this; }