A Gaussian integer is a complex number whose real and imaginary parts are both integers.
gaussiant
provides the GaussianInt
type,
which is a wrapper around num_complex::Complex
with additional methods for number theoretical computation.
If a prime number p is congruent to 3 modulo 4, then it is a Gaussian prime (Wikipedia).
use gaussiant::{GaussianInt, gaussint};
fn main() {
let p = gaussint!(7);
assert_eq!(
p.congruent(gaussint!(3), gaussint!(4)),
p.is_gaussian_prime()
);
}