diffsquare
From the Author
This project is authored by Abhrankan Chakrabarti and showcases an efficient implementation of Fermatโs Difference of Squares method for factoring large integers. Written in Rust, it leverages the malachite crate for high-performance arbitrary-precision arithmetic.
Key Features
- Support for both decimal and hexadecimal input formats.
- Command-line interface with interactive fallback.
- Optional control over iteration starting point and scientific precision.
- Verbose output in scientific notation for readability of large numbers.
- Quiet mode (
-q) to suppress prompts and reduce output. - Execution time displayed after successful factorization.
GitHub Repository: Abhrankan-Chakrabarti/diffsquare
Installation
Install via Cargo:
Ensure $HOME/.cargo/bin is in your PATH:
Build Instructions
To build from source:
๐ง Usage Examples
Run diffsquare interactively or use flags for automation:
# ๐น Fully interactive: prompts for modulus, iteration, and precision
# ๐น Provide a decimal modulus
# ๐น Provide a hexadecimal modulus
# ๐น Specify starting iteration (modulus still required)
# ๐น Use custom precision for verbose scientific output
# ๐น Combine all options and suppress output (precision not required in quiet mode)
# ๐น JSON output for scripting and automation
Command-Line Flags
| Short | Long | Description |
|---|---|---|
-n |
--mod |
Number to factor (supports 0x for hex, or scientific notation) |
-i |
--iter |
Starting iteration value |
-p |
--prec |
Precision for verbose scientific output |
-q |
--quiet |
Suppress prompts and intermediate output |
--json |
Print result as JSON (suppresses all other output) | |
-h |
--help |
Show help |
-v |
--version |
Show version |
Recent Update
feat: add JSON output mode (--json)
Tags
#RustLang #NumberTheory #OpenSource #BigInteger #Cryptography #Fermat #AbhrankanChakrabarti #Malachite