Prime numbers p for which the sum of primes less than or equal to p is prime: Difference between revisions

From Rosetta Code
Content added Content deleted
(Added Wren)
Line 53: Line 53:
Found 21 numbers
Found 21 numbers
done...
done...
</pre>

=={{header|Wren}}==
{{libheader|Wren-math}}
{{libheader|Wren-seq}}
{{libheader|Wren-fmt}}
<lang ecmascript>import "/math" for Int, Nums
import "/seq" for Lst
import "/fmt" for Fmt

var primes = Int.primeSieve(1000, true)
var maxSum = Nums.sum(primes)
var c = Int.primeSieve(maxSum, false)
var primeSum = 0
var results = []
for (p in primes) {
primeSum = primeSum + p
if (!c[primeSum]) results.add(p)
}
System.print("Primes 'p' under 1000 where the sum of all primes <= p is also prime:")
for (chunk in Lst.chunks(results, 7)) Fmt.print("$4d", chunk)
System.print("\nFound %(results.count) such primes.")</lang>

{{out}}
<pre>
Primes 'p' under 1000 where the sum of all primes <= p is also prime:
2 3 7 13 37 43 281
311 503 541 557 593 619 673
683 733 743 839 881 929 953

Found 21 such primes.
</pre>
</pre>

Revision as of 17:44, 7 July 2021

Prime numbers p for which the sum of primes less than or equal to p is prime is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
Task
Find prime numbers p which sum of prime numbers less or equal to p is prime, where p < 1000



Phix

function sump(integer p, i, sequence s) return is_prime(sum(s[1..i])) end function
sequence res = filter(get_primes_le(1000),sump)
printf(1,"%d found: %V\n",{length(res),res})
Output:
21 found: {2,3,7,13,37,43,281,311,503,541,557,593,619,673,683,733,743,839,881,929,953}

Ring

<lang ring> load "stdlib.ring" see "working..." + nl see "Prime numbers p which sum of prime numbers less or equal to p is prime:" + nl

row = 0 sum = 0 limit = 1000

for n = 1 to limit

   if isprime(n)
      sum = sum + n
      if isprime(sum)    
         see "" + n + " " 
         row = row + 1
         if row%5 = 0
            see nl
         ok
      ok
   ok

next

see nl + "Found " + row + " numbers" + nl see "done..." + nl </lang>

Output:
working...
Prime numbers p which sum of prime numbers less or equal to p is prime:
2 3 7 13 37 
43 281 311 503 541 
557 593 619 673 683 
733 743 839 881 929 
953 
Found 21 numbers
done...

Wren

Library: Wren-math
Library: Wren-seq
Library: Wren-fmt

<lang ecmascript>import "/math" for Int, Nums import "/seq" for Lst import "/fmt" for Fmt

var primes = Int.primeSieve(1000, true) var maxSum = Nums.sum(primes) var c = Int.primeSieve(maxSum, false) var primeSum = 0 var results = [] for (p in primes) {

  primeSum = primeSum + p
  if (!c[primeSum]) results.add(p)

} System.print("Primes 'p' under 1000 where the sum of all primes <= p is also prime:") for (chunk in Lst.chunks(results, 7)) Fmt.print("$4d", chunk) System.print("\nFound %(results.count) such primes.")</lang>

Output:
Primes 'p' under 1000 where the sum of all primes <= p is also prime:
   2    3    7   13   37   43  281
 311  503  541  557  593  619  673
 683  733  743  839  881  929  953

Found 21 such primes.