Skip to main content

mod_pow

Function mod_pow 

Source
pub fn mod_pow(a: u64, n: u64, m: u64) -> u64
Expand 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);