Check if sum of first n primes is prime: Difference between revisions

From Rosetta Code
Content added Content deleted
No edit summary
(Blanked the page)
Line 1: Line 1:
{{Draft task}}

;Task:Check if sum of first '''n''' primes is prime, where '''n <= 158'''

<br><br>

=={{header|Julia}}==
<lang julia>using Primes
</lang>
The sum of the first 20 primes is
<lang julia>julia> sum(prime(i) for i in 1:20)
639
</lang>
So, with a bit of experimentation, we find that to duplicate the Ring result we need to sum up to the first 158 primes, which then
gives us 20 prime results when we filter for a prime number as the sum:
<lang julia>julia> filter(p -> isprime(last(p)), accumulate(+, primes(prime(158))) |> enumerate |> collect)
20-element Vector{Tuple{Int64, Int64}}:
(1, 2)
(2, 5)
(4, 17)
(6, 41)
(12, 197)
(14, 281)
(60, 7699)
(64, 8893)
(96, 22039)
(100, 24133)
(102, 25237)
(108, 28697)
(114, 32353)
(122, 37561)
(124, 38921)
(130, 43201)
(132, 44683)
(146, 55837)
(152, 61027)
(158, 66463)
</lang>

=={{header|Ring}}==
<lang ring>
load "stdlib.ring"
see "working..." + nl
see "Sum of first primes is prime:" + nl
n = 0
nr = 0
num = 0
primSum = 0

while true
n++
if isprime(n)
nr++
primSum += n
if isprime(primSum)
num++
see "n" + "(" + nr + ") = " + primsum + " is prime" + nl
ok
ok
if num = 20
exit
ok
end

see "done..." + nl
</lang>
{{out}}
<pre>
working...
Sum of first primes is prime:
n(1) = 2 is prime
n(2) = 5 is prime
n(4) = 17 is prime
n(6) = 41 is prime
n(12) = 197 is prime
n(14) = 281 is prime
n(60) = 7699 is prime
n(64) = 8893 is prime
n(96) = 22039 is prime
n(100) = 24133 is prime
n(102) = 25237 is prime
n(108) = 28697 is prime
n(114) = 32353 is prime
n(122) = 37561 is prime
n(124) = 38921 is prime
n(130) = 43201 is prime
n(132) = 44683 is prime
n(146) = 55837 is prime
n(152) = 61027 is prime
n(158) = 66463 is prime
done...
</pre>

Revision as of 10:17, 23 July 2021