Erdős-primes: Difference between revisions

→‎{{header|Wren}}: More efficient and 11 x quicker than before.
m (→‎{{header|Raku}}: Alternate)
(→‎{{header|Wren}}: More efficient and 11 x quicker than before.)
Line 1,428:
=={{header|Wren}}==
{{libheader|Wren-math}}
{{libheader|Wren-seq}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascript">import "/math" for Int
import "/seq" for Lst
import "/fmt" for Fmt
 
var limit = 1e6
var lowerLimit = 2500
var primesc = Int.primeSieve(limit - 1, truefalse)
var erdos = []
var lastErdos = 0
for (p in primes) {
var iec = 10
for (pi in primes2...limit) {
if (c[i]) continue
var j = 1
var fact = 1
var found = true
while (fact < pi) {
if (Int.isPrime(p!c[i - fact)]) {
found = false
break
}
ij = ij + 1
fact = fact * ij
}
if (found) erdos.add(p){
if (i < lowerLimit) erdos.add(i)
lastErdos = i
ec = ec + 1
}
if (found) erdos.add(p)
}
 
var lowerLimit = 2500
Fmt.print("The $,d Erdős primes under $,d are:", erdosLowererdos.count, lowerLimit)
var erdosLower = erdos.where { |e| e < lowerLimit}.toList
Fmt.tprint("$6d", erdos, 10)
Fmt.print("The $,d Erdős primes under $,d are:", erdosLower.count, lowerLimit)
Fmt.print("\nThe $,r Erdős prime is $,d.", showec, erdos[show-1]lastErdos)</syntaxhighlight>
for (chunk in Lst.chunks(erdosLower, 10)) Fmt.print("$6d", chunk)
var show = 7875
Fmt.print("\nThe $,r Erdős prime is $,d.", show, erdos[show-1])</syntaxhighlight>
 
{{out}}
<pre>
The 25 Erdős primes under 2,500 are:
2 101 211 367 409 419 461 557 673 709
769 937 967 1009 1201 1259 1709 1831 1889 2141
2221 2309 2351 2411 2437
 
The 7,875th Erdős prime is 999,721.
9,485

edits