pub fn mod_pow(a: u64, n: u64, m: u64) -> u64Expand description
(a^n) mod m — modul bo’yicha tez darajaga ko’tarish.
Kriptografiyaning “ishchi oti”: 2048-bitli sonlar bilan ham tez ishlaydi.
Overflowdan saqlanish uchun ichkarida u128 ishlatilgan.
- Time: O(log n).
§Misol
use rust_algorithms::numbers::mod_pow;
assert_eq!(mod_pow(2, 10, 1000), 24); // 1024 mod 1000
assert_eq!(mod_pow(3, 0, 7), 1);
assert_eq!(mod_pow(123456789, 987654321, 1_000_000_007), 652541198);