Frobenius numbers: Difference between revisions

Content added Content deleted
(→‎{{header|Ring}}: 9599 missing)
(Added Rust solution)
Line 310:
Found 24 Frobenius numbers
done...</pre>
 
=={{header|Rust}}==
<lang rust>// [dependencies]
// primal = "0.3"
 
fn frobenius_numbers() -> impl std::iter::Iterator<Item = (usize, bool)> {
let mut primes = primal::Primes::all();
let mut prime = primes.next().unwrap();
std::iter::from_fn(move || {
if let Some(p) = primes.by_ref().next() {
let fnum = prime * p - prime - p;
prime = p;
return Some((fnum, primal::is_prime(fnum as u64)));
}
None
})
}
 
fn main() {
let limit = 1000000;
let mut count = 0;
println!(
"Frobenius numbers less than {} (asterisk marks primes):",
limit
);
for (fnum, is_prime) in frobenius_numbers().take_while(|(x, _)| *x < limit) {
count += 1;
let c = if is_prime { '*' } else { ' ' };
let s = if count % 10 == 0 { '\n' } else { ' ' };
print!("{:6}{}{}", fnum, c, s);
}
println!();
}</lang>
 
{{out}}
<pre>
Frobenius numbers less than 1000000 (asterisk marks primes):
1 7* 23* 59* 119 191* 287 395 615 839*
1079 1439* 1679 1931* 2391 3015 3479 3959 4619 5039*
5615 6395 7215 8447* 9599 10199 10811 11447* 12095 14111
16379 17679 18767 20423 22199 23399* 25271 26891* 28551 30615
32039 34199 36479* 37631 38807 41579* 46619* 50171 51527 52895
55215 57119* 59999* 63999 67071 70215 72359 74519 77279* 78959
82343 89351 94859 96719 98591 104279 110879* 116255 120407 122495
126015 131027 136151 140615 144395 148215 153647 158399 163199* 170543
175559 180599 185759 189215 193595 198015 204287 209759 212519 215291
222747 232307* 238139 244019 249995 255015 264159 271439 281879 294839
303575 312471 319215 323759* 328319 337535 346911 354015 358799 363599
370871* 376991 380687 389339 403199 410879 414731* 421191 429015 434279
443519 454271 461031 470579* 482999 495599 508343 521267* 531431 540215
547595 556499 566999* 574559 583679 592895 606791* 625655 643167 654479
664199* 674039 678971* 683927 693863 713975 729311 734447 739595 755111
770879 776159* 781451 802715 824459* 835379* 851903 868607 879839* 889239
900591 919631* 937019 946719 958431 972179 986039
</pre>
 
=={{header|Wren}}==