代码:
use std::io;
fn main() {
let mut a:i128;
let mut b:i128;
let mut p:i128;
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Error reading line");
let mut iter = input.split_whitespace();
a = iter.next().unwrap().parse::<i128>().unwrap();
b = iter.next().unwrap().parse::<i128>().unwrap();
p = iter.next().unwrap().parse::<i128>().unwrap();
let mut result:i128 = 1;
let mut base = a % p;
while b > 0 {
if b & 1 == 1 {
result = (result * base) % p;
}
base = (base * base) % p;
b >>= 1;
}
println!("{}", result);
}
调了很长时间,样例过了,但是测试点一个都没过