Primes by Trial Division - BCPL

30 April 2017
GET "libhdr"
MANIFEST $( N=100 
            //N=1000
            //N=10000
         $)
LET start() BE 
$( LET i, found, count = ?, 0, 2
   LET primes = VEC (N-1)
   $( writef("%n*n", count)
      primes!found := count
      found := found + 1
      count := count + 1
      IF found = N BREAK
      
      i := 0
      $( TEST (count REM primes!i) = 0 
         THEN $( i := 0
                 count := count + 1
              $)
         ELSE i := i + 1
      $) REPEATUNTIL (i = found)
   $) REPEAT
$)