#miller-rabin #primality-test #numbers #prime #probabilistic

bin+lib rust-miller-rabin

Miller-Rabin素性测试的Rust实现

5个版本

0.1.4 2024年5月2日
0.1.3 2024年4月26日
0.1.2 2024年4月23日
0.1.1 2024年4月23日
0.1.0 2024年4月22日

421数学 类别中

每月 40 次下载

MIT 许可证

7KB
79 代码行

🚀 具备大整数功能的Rust Miller-Rabin

Miller Rabin素性测试算法的完整Rust实现。GitHub查看:https://github.com/callum-fortune/rust-miller-rabin

备注

  • Miller Rabin算法虽然非常准确,但在某些情况下可能会产生错误。这是因为该算法被正式归类为概率性素性测试。请在了解这一点的情况下继续使用此项目。更多信息请参阅...

    https://core.ac.uk/download/pdf/197479038.pdf

  • 该项目主要基于此实现...

    https://github.com/jsanders/rust-rsa

  • 我尚未了解此项目的上限,我已成功测试了长度超过300个字符的素数以及长度为一的素数,均无故障。

  • 我在实现基本的Rust RSA实现的过程中创建了此项目。Miller-Rabin测试是这种用例的常见用途,你很可能也在进行相同的过程。请注意,任何使用此代码的自行实现都由你自己承担风险。

用法

  • 我将此项目打包为Rust库,但已包括main.rs文件以展示代码的工作状态。可以在src文件夹中找到,或者直接运行。

    cargo build
    cargo run
    
  • 如果您想将其用作库,可以按以下方式导入和使用:

    use rust_miller_rabin::miller_rabin::miller_rabin
    
    fn is_prime(number: BigInt) -> bool {
      println!("Checking prime");
      return miller_rabin(&number);
    }
    
  • 我为此项目包含了一些测试,这些测试将测试小素数、大素数、小非素数和大非素数。运行这些测试:

    cargo test
    

    ^不要侮辱你的智商

依赖项

~795KB
~16K SLoC