2020-11-29 10:31:15 +08:00
|
|
|
#![no_std]
|
|
|
|
#![no_main]
|
|
|
|
|
|
|
|
#[macro_use]
|
|
|
|
extern crate user_lib;
|
|
|
|
|
|
|
|
const LEN: usize = 100;
|
|
|
|
|
|
|
|
#[no_mangle]
|
|
|
|
fn main() -> i32 {
|
|
|
|
let p = 7u64;
|
|
|
|
let m = 998244353u64;
|
2020-11-30 10:29:17 +08:00
|
|
|
let iter: usize = 160000;
|
2020-11-29 10:31:15 +08:00
|
|
|
let mut s = [0u64; LEN];
|
|
|
|
let mut cur = 0usize;
|
|
|
|
s[cur] = 1;
|
|
|
|
for i in 1..=iter {
|
|
|
|
let next = if cur + 1 == LEN { 0 } else { cur + 1 };
|
|
|
|
s[next] = s[cur] * p % m;
|
|
|
|
cur = next;
|
|
|
|
if i % 10000 == 0 {
|
|
|
|
println!("power_7 [{}/{}]", i, iter);
|
|
|
|
}
|
|
|
|
}
|
2021-07-09 21:18:51 +08:00
|
|
|
println!("{}^{} = {}(MOD {})", p, iter, s[cur], m);
|
2020-11-29 10:31:15 +08:00
|
|
|
println!("Test power_7 OK!");
|
|
|
|
0
|
|
|
|
}
|