|
/* greatest common divisor */
|
|
define g(m, n) {
|
|
auto t
|
|
|
|
/* Euclid's method */
|
|
while (n != 0) {
|
|
t = m
|
|
m = n
|
|
n = t % n
|
|
}
|
|
return (m)
|
|
}
|
|
|
|
/* least common multiple */
|
|
define l(m, n) {
|
|
auto r
|
|
|
|
if (m == 0 || n == 0) return (0)
|
|
r = m * n / g(m, n)
|
|
if (r < 0) return (-r)
|
|
return (r)
|
|
}
|