Wieferich primes: Difference between revisions

Content added Content deleted
(Realize in F#)
(Added Rust solution)
Line 257: Line 257:


Found 2 Wieferich primes that are < 5,000
Found 2 Wieferich primes that are < 5,000
</pre>

=={{header|Rust}}==
<lang rust>// [dependencies]
// primal = "0.3"
// mod_exp = "1.0"

fn wieferich_primes(limit: usize) -> impl std::iter::Iterator<Item = usize> {
primal::Primes::all()
.take_while(move |x| *x < limit)
.filter(|x| mod_exp::mod_exp(2, *x - 1, *x * *x) == 1)
}

fn main() {
let limit = 5000;
println!("Wieferich primes less than {}:", limit);
for p in wieferich_primes(limit) {
println!("{}", p);
}
}</lang>

{{out}}
<pre>
Wieferich primes less than 5000:
1093
3511
</pre>
</pre>