Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Элемент кольца вычетов по модулю m с операциями сложения и умножения
- class Elem(num: Int, mod: Int) {
- val x = num % mod
- val m = mod
- def + (k: Int) = new Elem(x + k, m)
- def + (q: Elem): Elem = {
- if (m != q.m)
- throw new Exception("modules not equal")
- else
- new Elem(x + q.x, m)
- }
- def * (k: Int) = new Elem(x * k, m)
- def * (q: Elem): Elem = {
- if (m != q.m)
- throw new Exception("modules not equal")
- else
- new Elem(x * q.x, m)
- }
- def this(mod: Int) = this(1, mod)
- }
- class ElemFactor(x: Int) {
- def + (q: Elem) = q + x
- def * (q: Elem) = q * x
- }
- implicit def intToFactor(i: Int) = new ElemFactor(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement