fn main() {
let x: i64 = -3;
println!("a = {}", a);
let p = 12;
let q = 18;
let g = {
fn gcd(x: i64, y: i64) -> i64 {
if y == 0 {
x
} else {
gcd(y, x % y)
}
}
gcd(p, q)
};
println!("g = {}", g);
let n = 3;
println!("z = {}", z);
let r = {
fn mod_pow(x: i64, y: i64, z: i64) -> i64 {
if y == 0 {
1
} else {
let h = mod_pow(x, y / 2, z);
let res = (h * h) % z;
if y % 2 == 0 {
res
} else {
(res * x) % z
}
}
}
mod_pow(q, 1_000_000_005, 1_000_000_007)
};
println!("r = {}", r);
let s
= (q as f64
).
sqrt(); println!("s = {}", s);
}
Zm4gbWFpbigpIHsKICAgIGxldCB4OiBpNjQgPSAtMzsKICAgIGxldCBhID0geC5hYnMoKTsKICAgIHByaW50bG4hKCJhID0ge30iLCBhKTsKICAgIGxldCBwID0gMTI7CiAgICBsZXQgcSA9IDE4OwogICAgbGV0IGcgPSB7CiAgICAgICAgZm4gZ2NkKHg6IGk2NCwgeTogaTY0KSAtPiBpNjQgewogICAgICAgICAgICBpZiB5ID09IDAgewogICAgICAgICAgICAgICAgeAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZ2NkKHksIHggJSB5KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGdjZChwLCBxKQogICAgfTsKICAgIHByaW50bG4hKCJnID0ge30iLCBnKTsKICAgIGxldCBuID0gMzsKICAgIGxldCB6ID0gcS5wb3cobik7CiAgICBwcmludGxuISgieiA9IHt9Iiwgeik7CiAgICBsZXQgciA9IHsKICAgICAgICBmbiBtb2RfcG93KHg6IGk2NCwgeTogaTY0LCB6OiBpNjQpIC0+IGk2NCB7CiAgICAgICAgICAgIGlmIHkgPT0gMCB7CiAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBsZXQgaCA9IG1vZF9wb3coeCwgeSAvIDIsIHopOwogICAgICAgICAgICAgICAgbGV0IHJlcyA9IChoICogaCkgJSB6OwogICAgICAgICAgICAgICAgaWYgeSAlIDIgPT0gMCB7CiAgICAgICAgICAgICAgICAgICAgcmVzCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIChyZXMgKiB4KSAlIHoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBtb2RfcG93KHEsIDFfMDAwXzAwMF8wMDUsIDFfMDAwXzAwMF8wMDcpCiAgICB9OwogICAgcHJpbnRsbiEoInIgPSB7fSIsIHIpOwogICAgbGV0IHMgPSAocSBhcyBmNjQpLnNxcnQoKTsKICAgIHByaW50bG4hKCJzID0ge30iLCBzKTsKfQo=