#miller-rabin #primality-test #prime #gmp #rabin #miller

rug-miller-rabin

使用rug(GMP)的多线程、任意精度Miller-Rabin素性测试实现

1个不稳定版本

0.1.0 2024年3月9日

#1330 in 数学


rust_ev_crypto_primitives中使用

LGPL-3.0+

17KB
181

rug(GMP)的Miller Rabin素性测试

简介

该Crate实现了一个多线程、任意精度的Miller-Rabin素性测试。

实现针对来自rug的整数,GMP的高级接口。

该Crate受到了来自miller_rabin的Crate的强烈启发。

安装

有关要求和安装步骤,请参阅rug

许可

Rug是自由软件:您可以在自由软件基金会发布的GNU Lesser General Public License的条款下重新分发和/或修改它,许可证版本为3,或者(根据您的选择)许可证的任何较新版本。有关详细信息,请参阅GNU LGPL的完整文本。


lib.rs:

整数(rug / GMP)的Miller-Rabin测试(多线程)

该方法[is_prime]使用给定的迭代次数使用Miller-Rabin方法测试给定数字是否可能是素数。

示例

use miller_rabin::is_prime;

// Mersenne Prime (2^31 - 1)
let n: u64 = 0x7FFF_FFFF;
assert!(is_prime(&n, 16));

功能

默认情况下,测试将并行运行(使用[rayon])。可以通过导入Crate来迭代地禁用默认功能。

依赖项

~22MB
~513K SLoC