pub fn mod_exp(base: u64, exponent: u64, q: u64) -> u64