CalmoSoft primes: Difference between revisions
Content added Content deleted
(Converted to draft task, clarified and tidied the task description and added a Wren solution.) |
(Added Go) |
||
Line 6: | Line 6: | ||
Find and show here the longest sequence of CalmoSoft primes. |
Find and show here the longest sequence of CalmoSoft primes. |
||
<br><br> |
<br><br> |
||
=={{header|Go}}== |
|||
{{trans|Wren}} |
|||
{{libheader|Go-rcu}} |
|||
<syntaxhighlight lang="go">package main |
|||
import ( |
|||
"fmt" |
|||
"rcu" |
|||
"strconv" |
|||
) |
|||
func main() { |
|||
primes := rcu.Primes(100) |
|||
pc := len(primes) |
|||
longest := 0 |
|||
var sIndices, eIndices []int |
|||
for i := 0; i < pc; i++ { |
|||
for j := pc - 1; j >= i; j-- { |
|||
temp := j - i + 1 |
|||
if temp < longest { |
|||
break |
|||
} |
|||
sum := rcu.SumInts(primes[i : j+1]) |
|||
if rcu.IsPrime(sum) { |
|||
if temp > longest { |
|||
longest = temp |
|||
sIndices = []int{i} |
|||
eIndices = []int{j} |
|||
} else { |
|||
sIndices = append(sIndices, i) |
|||
eIndices = append(eIndices, j) |
|||
} |
|||
break |
|||
} |
|||
} |
|||
} |
|||
fmt.Println("The longest sequence(s) of CalmoSoft primes having a length of", longest, "is/are:\n") |
|||
for i := 0; i < len(sIndices); i++ { |
|||
cp := primes[sIndices[i] : eIndices[i]+1] |
|||
sum := rcu.SumInts(cp) |
|||
cps := "" |
|||
for i := 0; i < len(cp); i++ { |
|||
cps += strconv.Itoa(cp[i]) |
|||
if i < len(cp)-1 { |
|||
cps += " + " |
|||
} |
|||
} |
|||
cps += " = " + strconv.Itoa(sum) + " which is prime" |
|||
fmt.Println(cps) |
|||
if i < len(sIndices)-1 { |
|||
fmt.Println() |
|||
} |
|||
} |
|||
}</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
The longest sequence(s) of CalmoSoft primes having a length of 21 is/are: |
|||
7 + 11 + 13 + 17 + 19 + 23 + 29 + 31 + 37 + 41 + 43 + 47 + 53 + 59 + 61 + 67 + 71 + 73 + 79 + 83 + 89 = 953 which is prime |
|||
</pre> |
|||
=={{header|Ring}}== |
=={{header|Ring}}== |
||
<syntaxhighlight lang="ring"> |
<syntaxhighlight lang="ring"> |