/* 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) }