Extreme primes

Revision as of 21:01, 23 April 2023 by Jjuanhdez (talk | contribs) (Added FreeBasic)

Definition

Write down the first prime number, add the next prime number and if it is prime, add it to the series and so on. These primes are called extreme primes

Task

Find and display the first 30 p extreme prime number on this page.

FreeBASIC

#include "isprime.bas"
Dim As Integer limit = 2000, n, c = 0
Dim As Integer Primes()

For n = 1 To limit
    If isPrime(n) Then 
        c += 1
        Redim Preserve Primes(n)
        Primes(c) = n
    End If
Next n

Print "The first 30 extreme primes are:"
Dim As Integer sum = 0, row = 0

For n = 1 To Ubound(Primes)
    sum += Primes(n)
    If isPrime(sum) Then 
        row += 1
        Print Using "########"; sum;
        If row Mod 10 = 0 Then Print
    End If
Next n

Sleep
Output:
Similar to Ring entry.

Ring

see "working..." + nl
limit = 2000
Primes = []

for n = 1 to limit
     if isPrime(n)
        add(Primes,n)
     ok
next
sum = 0
row = 0

for n = 1 to len(Primes)
     sum = sum + Primes[n]
     if isPrime(sum)
        row++
        see "" + sum + " "
        if row % 10 = 0
           see nl
        ok
      ok
next
see "done..." + nl

func isPrime num
     if (num <= 1) return 0 ok
     if (num % 2 = 0 and num != 2) return 0 ok
     for i = 3 to floor(num / 2) -1 step 2
         if (num % i = 0) return 0 ok
     next
     return 1
Output:
working...
2 5 17 41 197 281 7699 8893 22039 24133 
25237 28697 32353 37561 38921 43201 44683 55837 61027 66463 
70241 86453 102001 109147 116533 119069 121631 129419 132059 263171 
done...

Wren

Library: Wren-math
Library: Wren-fmt

This is very similar to the Prime numbers p for which the sum of primes less than or equal to p is prime task which itself was a near duplicate of the Summarize primes task so I'm highly dubious about converting it to a separate draft task. I also found it at OEIS-A013918 though it doesn't appear to have a recognized name. --- Based on the above reasons, please delete this task. Thanks in advance. --- CalmoSoft

import "./math" for Int
import "./fmt" for Fmt

var primes = Int.primeSieve(2000) // say
var extremes = [2]
var sum = 2
for (p in primes.skip(1)) {
    sum = sum + p
    if (Int.isPrime(sum)) {
        extremes.add(sum)
        if (extremes.count == 30) break
    }
}
System.print("The first 30 extreme primes are:")
Fmt.tprint("$,7d ", extremes, 6)
Output:
The first 30 extreme primes are:
      2        5       17       41      197      281  
  7,699    8,893   22,039   24,133   25,237   28,697  
 32,353   37,561   38,921   43,201   44,683   55,837  
 61,027   66,463   70,241   86,453  102,001  109,147  
116,533  119,069  121,631  129,419  132,059  263,171  

XPL0

include xpllib; \for IsPrime and RlOutC
int C, N, S;
[Text(0, "The first 30 extreme primes are:^m^j");
Format(7,0);
C:= 0;  N:= 2;  S:= 0;
loop    [if IsPrime(N) then
            [S:= S+N;
            if IsPrime(S) then
                [C:= C+1;
                RlOutC(0, float(S));
                if rem(C/6) = 0 then CrLf(0);
                if C >= 30 then quit;
                ];
            ];
        N:= N+1;
        ];
]
Output:
The first 30 extreme primes are:
        2        5       17       41      197      281
    7,699    8,893   22,039   24,133   25,237   28,697
   32,353   37,561   38,921   43,201   44,683   55,837
   61,027   66,463   70,241   86,453  102,001  109,147
  116,533  119,069  121,631  129,419  132,059  263,171