    1REM  >  DON93/11.PRIMES  ,  26/1/1994, 3/2/94, 4/3/94, 1/4/94,2020-
    2
    3MODE 0
    4FOR D = 1 TO 3     
    5     PRINT "PGM PRIMES, BY DON S MCDONALD, 63/5 Hanson Crt Fls, WGTN 2, N.Z. , 1/4/94,2020-"
    6     NEXT D
    7     PRINT ''"See Also  PDomain. Prime(n  -- "'"modified by Don McDonald"'"to count # primes up to 8 million ??."''
    8    I%=0
    9    Count = 0
   10    Now = TIME
   11
   12ON ERROR PROCerror
   13REPEAT
   14@%=10
   15PRINT''"CALCULATE PRIMES by trial division"'
   16    PRINT" STARTING FROM .."; I% ",  ENTER expression I$,"'
   17    INPUT" or continue.. Return, -ve end. ", I$
   18    IF I$<>"" THEN I%= EVAL I$
   19    PRINT "Start = "; I%
   20    Count = 0
   21    Now = TIME
   22IF I% < 0 THEN PROCerror
   23   
   24FOR I% = (I% DIV 2) *2 +1 TO 2^31-1 STEP 2       
   25       J% = 1
   26       J1 = SQR I%
   27       REPEAT
   28               J% += 2
   29               UNTIL I% MOD J% = 0 OR J% > J1
   30       IF J% > J1 THEN PROCNXT
   31       NEXT I%
   32PRINT '"Reached Integer limit, maximum."
   33UNTIL FALSE
   34END
   35:
   36DEF PROCerror
   37REPORT:
   38 PRINT" at line. ";ERL :
   39 PRINT"Count # primes = ";Count ;
   40 @% = &2020A  :  PRINT "  TIME  ";.01*(TIME-Now) " seconds."
   41 IF I% < 1 THEN
   42        PRINT'"PGM  DONMCD.PGMS.Prime.PRIMES   E  N  D  .."
   43        END
   44        ELSE  ENDPROC
   45:
   46DEF PROCNXT
   47IF POS > 66 THEN PRINT'CHR$(7);
   48IF I% = 1 THEN PRINT  "2,  ";   ELSE PRINT; I% ", ";
   49Count  += 1
   50ENDPROC
   51
   52