Prime triangle: Difference between revisions
Content added Content deleted
(→{{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: | Line 397: | ||
=={{header|Go}}== |
=={{header|Go}}== |
||
Takes about 0.64 seconds. |
|||
{{trans|Phix}} |
{{trans|Phix}} |
||
<lang go>package main |
<lang go>package main |
||
Line 403: | Line 404: | ||
var canFollow [][]bool |
var canFollow [][]bool |
||
var avail []bool |
|||
var arrang []int |
var arrang []int |
||
var |
var bFirst = true |
||
var pmap = make(map[int]bool) |
var pmap = make(map[int]bool) |
||
Line 419: | Line 419: | ||
if n-done <= 1 { |
if n-done <= 1 { |
||
if canFollow[ad-1][n-1] { |
if canFollow[ad-1][n-1] { |
||
if |
if bFirst { |
||
for _, e := range arrang { |
for _, e := range arrang { |
||
fmt.Printf("%2d ", e) |
fmt.Printf("%2d ", e) |
||
} |
} |
||
fmt.Println() |
fmt.Println() |
||
⚫ | |||
} |
} |
||
res++ |
res++ |
||
Line 429: | Line 430: | ||
} else { |
} else { |
||
done++ |
done++ |
||
for i := 1; i <= n-2; i+ |
for i := done - 1; i <= n-2; i += 2 { |
||
ai := arrang[i] |
|||
if canFollow[ad-1][ai-1] { |
|||
arrang[done-1] = |
arrang[i], arrang[done-1] = arrang[done-1], arrang[i] |
||
res = ptrs(res, n, done) |
res = ptrs(res, n, done) |
||
arrang[i], arrang[done-1] = arrang[done-1], arrang[i] |
|||
return res |
|||
} |
|||
⚫ | |||
} |
} |
||
} |
} |
||
Line 453: | Line 451: | ||
} |
} |
||
} |
} |
||
bFirst = true |
|||
arrang = make([]int, n) |
|||
for i := 0; i < n; i++ { |
|||
⚫ | |||
} |
} |
||
⚫ | |||
⚫ | |||
arrang[n-1] = n |
|||
return ptrs(0, n, 1) |
return ptrs(0, n, 1) |
||
} |
} |
||
func main() { |
func main() { |
||
⚫ | |||
for i := 2; i <= 20; i++ { |
for i := 2; i <= 20; i++ { |
||
primeTriangle(i) |
counts[i-2] = primeTriangle(i) |
||
} |
} |
||
fmt.Println() |
fmt.Println() |
||
for i := 0; i < 19; i++ { |
|||
fmt.Printf("%d ", counts[i]) |
|||
fmt.Printf("%d ", primeTriangle(i)) |
|||
} |
} |
||
fmt.Println() |
fmt.Println() |