Prime and Factorial Functions
This section focuses on functions that deal with prime numbers and factorial operations under modular constraints.
Functions Overview
Prime and Factorial Operations
modFactorial(n: number, mod: number): number
Computes the factorial of a numbern, reduced modulomod.
Detailed Documentation
modFactorial
Description:
Calculates n! % mod using modular arithmetic to avoid overflow for large values of n.
Example:
console.log(modFactorial(5, 7)); // Output: 1 (since 5! = 120, 120 % 7 = 1)
console.log(modFactorial(4,10)) // Output: 4 (since 4! = 24, 24 % 10 = 4)
console.log(modFactorial(0, 13)); // Output: 1 (0! is defined as 1)
Validation Checks:
- Throws an error if
nis negative, as factorials are only defined for non-negative integers. - Throws an error if
modis zero or negative. - Throws an error if either
normodis not an integer.
Additional Notes
Performance Optimization
The modFactorial function uses modular reduction at each step of the multiplication, making it efficient even for relatively large values of n.
Example:
console.log(modFactorial(20, 13));
// Output: 9 (calculating 20! % 13 without directly computing 20!)
Applications
- Cryptographic Algorithms: Modular arithmetic is heavily used in cryptographic algorithms, including RSA.
- Combinatorics: When computing combinations or permutations modulo a number, factorial computations modulo
modare often required.
Full Code Example
Here’s how you can combine modFactorial with other modular operations:
import { modFactorial } from './modFactorial';
const factorial = modFactorial(7, 5);
console.log(`7! % 5 = ${factorial}`); // Output: 3