Jump to content

Prime triangle: Difference between revisions

→‎{{header|Wren}}: Updated in line with Phix example of which it's a translation.
(Swift - performance improvement)
(→‎{{header|Wren}}: Updated in line with Phix example of which it's a translation.)
Line 1,289:
{{trans|Phix}}
{{libheader|Wren-fmt}}
Takes around 5718.37 seconds which is fine for Wren.
{{libheader|Wren-ioutil}}
Takes around 57.3 seconds which is fine for Wren.
<lang ecmascript>import "./fmt" for Fmt
import "./ioutil" for Output
 
var canFollow = []
var avail = []
var arrang = []
var bCountbFirst = falsetrue
 
var pmap = {}
Line 1,309 ⟶ 1,306:
if (n - done <= 1) {
if (canFollow[ad-1][n-1]) {
if (!bCountbFirst) Fmt.print("$2d", arrang){
avail[i]Fmt.print("$2d", = truearrang)
bFirst = false
}
res = res + 1
}
} else {
done = done + 1
forvar (i in= done 1..n-2) {1
ifwhile (avail[i] &&<= canFollow[adn-1][i]2) {
var ai = availarrang[i] = false
if arrang(canFollow[donead-1][ai-1]) = i+1{
arrang.swap(i, done-1)
res = ptrs.call(res, n, done)
if arrang.swap(!bCounti, && res != 0done-1) return res
avail[i] = true
}
i = i + 2
}
}
Line 1,333 ⟶ 1,334:
for (j in 0...n) canFollow[i][j] = pmap.containsKey(i+j+2)
}
availbFirst = List.filled(n, true)
avail[0]arrang = avail[(1..n-1] = false).toList
arrang = List.filled(n, 0)
arrang[0] = 1
arrang[n-1] = n
return ptrs.call(0, n, 1)
}
 
var availcounts = []
for (i in 2..20) primeTriangle.call(i)
for (i in 2..20) {
for (i in 2 counts..20) add(primeTriangle.call(i))
}
System.print()
System.print(counts.join(" "))</lang>
bCount = true
for (i in 2..20) Output.fwrite("%(primeTriangle.call(i)) ")
System.print()</lang>
 
{{out}}
9,485

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.