14个不稳定版本 (3个破坏性更新)
0.4.0 | 2023年6月17日 |
---|---|
0.3.2 | 2023年4月24日 |
0.2.6 | 2023年2月21日 |
0.2.3 | 2023年1月29日 |
0.1.9 | 2023年1月25日 |
#910 in 算法
16KB
165 行
euc_lib
库实现
- euc - 欧几里得算法
- euc_ext - 扩展欧几里得算法
- lcm - 最小公倍数
- congruence - 同余求解函数,找到解的最小x
想贡献吗?
我的github
项目
支持
示例使用
Euclides
扩展
程序
use euc_lib;
fn main() {
prinln!("{}", euc_lib::I32::euc_ext(135, 35));
}
输出
NWD = 5, S = -1, T = 4
简单
程序
use euc_lib;
fn main() {
prinln!("{}", euc_lib::I32::euc(135, 35)); // there is recursive variant too: euc_recursive(135,35)
}
输出
5
将向量作为参数
程序
use euc_lib;
fn main() {
println!("{:?}", euc_lib::I32::euc_from_vec(vec![21, 14, 56]));
}
输出
Ok(7)
LCM
简单
本版本实现使用gcd(欧几里得算法)的最小公倍数计算方法
程序
use euc_lib;
fn main () {
println!("{}", euc_lib::I32::lcm(21, 6)) // there is recursive variant too: lcm_recursive
}
输出
42
向量作为参数
程序
use euc_lib;
fn main() {
println!("{:?}", euc_lib::I32::lcm_from_vec(vec![12,4,8]))
}
输出
Ok(24)
同余
程序
use euc_lib;
fn main() {
println!("{:?}", euc_lib::I32::congruence(9,21,30))
}
输出
Ok(9)
i64支持
要使用所有函数的i64版本,请使用euc_lib::I64而不是euc_lib::I32
I64使用示例
程序
use euc_lib;
fn main() {
prinln!("{}", euc_lib::I64::euc_ext(135, 35));
}
输出
NWD = 5, S = -1, T = 4
依赖项
~465KB