3 个不稳定版本
0.2.0 | 2024年3月17日 |
---|---|
0.1.1 | 2024年2月25日 |
0.1.0 | 2024年2月13日 |
#1291 in 数学
8KB
73 行
primeshor
🚀 欢迎来到区块中最酷的 Rust 项目,primeshor
!这不是你爷爷的那套数值计算库。我们来让素数检查和分解既快又有趣。
但等等,素数有什么好玩的's??""
你问。嗯,我们在这里是要向你展示素数不仅仅是密码学的基石。他们是数字世界的超级英雄,我们要庆祝他们所有的光辉。
更新至 0.2.0
,通过解析字符串来处理 🚀 BigUint
以支持巨大的数字,确保它能够进行超出常规整数范围的运算!✨
快速入门
想要直接进入实战?这是你如何开始的步骤
use num_bigint::BigUint;
use primeshor::{factorize, is_prime};
fn main() {
// Define the number as a string
let n_str = "123456765343222456657333226789";
// Convert the string to a BigUint
let n = BigUint::parse_bytes(n_str.as_bytes(), 10).unwrap();
match factorize(n.clone()) {
Ok((factor1, factor2)) => println!("Factors of {}: {}, {}", n.clone(), factor1, factor2),
Err(e) => println!("Error: {}", e),
}
if is_prime(n.clone()) {
println!("{} is prime", n.clone());
} else {
println!("{} is not prime", n.clone());
}
}
运行此代码片段,你会看到
Factors of 123456765343222456657333226789: 3529, 34983498255376156604514941
123456765343222456657333226789 is not prime
Shor 算法是什么?
现在,让我们稍微变得 nerdy 一下。你听说过 Shor 算法吗?它是在分解数字成素数因子方面像超级英雄一样的算法。🦸♂️
Shor 算法是一种用于整数分解的量子计算算法。用年轻人的话来说:这是一种超级快速的方法来找出哪些数字相乘得到你原来的数字,但它使用的是量子比特而不是比特,就像是你的量子密友,用于密码学。
有多快?
在传统的计算世界中,分解大数需要很长时间(我们说的是绝对超过你的耐心水平)。但是,使用 Shor 算法,你可以在多项式时间内分解这些大数。没错,它在 O((log n)^2 (log log n) (log log log n))
时间内运行,这使得它比在经典计算机上运行的最佳算法快得多。
为什么选择 primeshor
?
虽然我们还没有在量子计算机上运行(还没有呢 😉),primeshor
旨在将一点那种兴奋感带入Rust生态系统。无论你是数学爱好者、初出茅庐的密码学家,还是为了量子革命而来,primeshor
都是你探索素数和因式分解奇迹的首选库。
所以,克隆仓库,深入研究文档,开始实验吧。谁知道呢?也许你将成为第一个在经典计算机上模拟Shor算法的人(或者至少在尝试中找到乐趣)。
记住,primeshor
的宗旨是将复杂化简,将平凡变得有趣。祝您编码愉快!🎉
依赖项
~485KB
~10K SLoC