Prime numbers whose neighboring pairs are tetraprimes: Difference between revisions

→‎{{header|Wren}}: Still not quite right, manually reverting last two edits.
(→‎{{header|Wren}}: Oops, lost some output - need an extra prime.)
(→‎{{header|Wren}}: Still not quite right, manually reverting last two edits.)
Tag: Manual revert
Line 1,242:
import "./fmt" for Fmt
 
var primes = Int.primeSieve(1e7 + 20)
 
var isTetraPrime = Fn.new { |n|
Line 1,266:
}
 
var highest5 = primes[Find.nearest(primes, 1e5) - 1]
var highest6 = primes[Find.nearest(primes, 1e6) - 1]
var highest7 = primes[-1]
var tetras1 = []
var tetras2 = []
Line 1,272 ⟶ 1,275:
var j = 1e5
for (p in primes) {
// process even numbers first as likely to have most factors
if (p < j) {
if (isTetraPrime.call(p-1) && isTetraPrime.call(p-2)) {
// process even numbers first as likely to have most factors
tetras1.add(p)
if (isTetraPrime.call(p-1) && isTetraPrime.call(p-2)) {
if ((p-1)%7 == 0 || tetras1.add(p-2)%7 == 0) sevens1 = sevens1 + 1
}
if ((p-1)%7 == 0 || (p-2)%7 == 0) sevens1 = sevens1 + 1
}
 
if (isTetraPrime.call(p+1) && isTetraPrime.call(p+2)) {
tetras2.add(p)
if ((p+1)%7 == 0 || (p+2)%7 == 0) sevens2 = sevens2 + 1
}
 
} else {
if (p == highest5 || p == highest6 || p == highest7) {
for (i in 0..1) {
var tetras = (i == 0) ? tetras1 : tetras2
Line 1,290 ⟶ 1,293:
var t = (i == 0) ? "preceding" : "following"
Fmt.write("Found $,d primes under $,d whose $s neighboring pair are tetraprimes", c, j, t)
if (jp == 1e5highest5) {
Fmt.print(":")
Fmt.tprint("$5d ", tetras, 10)
Line 1,306 ⟶ 1,309:
Fmt.print()
}
if (j == 1e7) return
j = j * 10
}
}</syntaxhighlight>
}
System.print(Int.nextPrime(1e7))</syntaxhighlight>
 
{{out}}
9,486

edits