#include "num.h"
Num::Num(int new_value, int new_modulo) {
Num::value = (new_value % new_modulo);
Num::modulo = new_modulo;
}
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;
}