Prime triangle: Difference between revisions

→‎{{header|Go}}: Updated in line with Phix example of which this is a translation.
(→‎{{header|Wren}}: Updated in line with Phix example of which it's a translation.)
(→‎{{header|Go}}: Updated in line with Phix example of which this is a translation.)
Line 397:
 
=={{header|Go}}==
Takes about 0.64 seconds.
{{trans|Phix}}
<lang go>package main
Line 403 ⟶ 404:
 
var canFollow [][]bool
var avail []bool
var arrang []int
var bCountbFirst = falsetrue
 
var pmap = make(map[int]bool)
Line 419:
if n-done <= 1 {
if canFollow[ad-1][n-1] {
if !bCountbFirst {
for _, e := range arrang {
fmt.Printf("%2d ", e)
}
fmt.Println()
avail[i]bFirst = truefalse
}
res++
Line 429 ⟶ 430:
} else {
done++
for i := done - 1; i <= n-2; i ++= 2 {
ifai avail[i]:= && canFollow[ad-1]arrang[i] {
if availcanFollow[iad-1][ai-1] = false{
arrang[i], arrang[done-1] = i + arrang[done-1], arrang[i]
res = ptrs(res, n, done)
ifarrang[i], !bCountarrang[done-1] && res != 0arrang[done-1], {arrang[i]
return res
}
avail[i] = true
}
}
Line 453 ⟶ 451:
}
}
availbFirst = make([]bool, n)true
forarrang i := 1; i <make([]int, n-1; i++ {)
for i := 0; avail[i] =< n; i++ true{
arrang[0i] = i + 1
}
arrang = make([]int, n)
arrang[0] = 1
arrang[n-1] = n
return ptrs(0, n, 1)
}
 
func main() {
arrangcounts := make([]int, n19)
for i := 2; i <= 20; i++ {
counts[i-2] = primeTriangle(i)
}
fmt.Println()
bCountfor i := true0; i < 19; i++ {
for i := 2; ifmt.Printf("%d <= 20;", counts[i++ {])
fmt.Printf("%d ", primeTriangle(i))
}
fmt.Println()
9,476

edits