Earliest difference between prime gaps: Difference between revisions

Added Rust solution
(Added Java solution)
(Added Rust solution)
Line 383:
Earliest difference > 1,000,000,000 between adjacent prime gap starting primes:
Gap 276 starts at 649,580,171, gap 278 starts at 4,260,928,601, difference is 3,611,348,430</pre>
 
=={{header|Rust}}==
<lang rust>// [dependencies]
// primal = "0.3"
 
fn main() {
use std::collections::HashMap;
 
let mut primes = primal::Primes::all();
let mut last_prime = primes.next().unwrap();
let mut gap_starts = HashMap::new();
 
let mut find_gap_start = move |gap: usize| -> usize {
if let Some(start) = gap_starts.get(&gap) {
return *start;
}
loop {
let prev = last_prime;
last_prime = primes.next().unwrap();
let diff = last_prime - prev;
if !gap_starts.contains_key(&diff) {
gap_starts.insert(diff, prev);
}
if gap == diff {
return prev;
}
}
};
 
let limit = 100000000000;
 
let mut pm = 10;
let mut gap1 = 2;
loop {
let start1 = find_gap_start(gap1);
let gap2 = gap1 + 2;
let start2 = find_gap_start(gap2);
let diff = if start2 > start1 {
start2 - start1
} else {
start1 - start2
};
if diff > pm {
println!(
"Earliest difference > {} between adjacent prime gap starting primes:\n\
Gap {} starts at {}, gap {} starts at {}, difference is {}.\n",
pm, gap1, start1, gap2, start2, diff
);
if pm == limit {
break;
}
pm *= 10;
} else {
gap1 = gap2;
}
}
}</lang>
 
{{out}}
<pre>
Earliest difference > 10 between adjacent prime gap starting primes:
Gap 4 starts at 7, gap 6 starts at 23, difference is 16.
 
Earliest difference > 100 between adjacent prime gap starting primes:
Gap 14 starts at 113, gap 16 starts at 1831, difference is 1718.
 
Earliest difference > 1000 between adjacent prime gap starting primes:
Gap 14 starts at 113, gap 16 starts at 1831, difference is 1718.
 
Earliest difference > 10000 between adjacent prime gap starting primes:
Gap 36 starts at 9551, gap 38 starts at 30593, difference is 21042.
 
Earliest difference > 100000 between adjacent prime gap starting primes:
Gap 70 starts at 173359, gap 72 starts at 31397, difference is 141962.
 
Earliest difference > 1000000 between adjacent prime gap starting primes:
Gap 100 starts at 396733, gap 102 starts at 1444309, difference is 1047576.
 
Earliest difference > 10000000 between adjacent prime gap starting primes:
Gap 148 starts at 2010733, gap 150 starts at 13626257, difference is 11615524.
 
Earliest difference > 100000000 between adjacent prime gap starting primes:
Gap 198 starts at 46006769, gap 200 starts at 378043979, difference is 332037210.
 
Earliest difference > 1000000000 between adjacent prime gap starting primes:
Gap 276 starts at 649580171, gap 278 starts at 4260928601, difference is 3611348430.
 
Earliest difference > 10000000000 between adjacent prime gap starting primes:
Gap 332 starts at 5893180121, gap 334 starts at 30827138509, difference is 24933958388.
 
Earliest difference > 100000000000 between adjacent prime gap starting primes:
Gap 386 starts at 35238645587, gap 388 starts at 156798792223, difference is 121560146636.
 
</pre>
 
=={{header|Wren}}==
1,777

edits