    1MODE 11
    2    COLOUR  2
    3    FOR D  =  1  TO  2  :  PRINT "BBC-BASIC2 PROG PROFILE, 27.6.91, 29/7/94, 7/8/94, 2325-" :  NEXT   D
    4    COLOUR 3
    2PRINT" XFERRED TO DIR. CALC, 3/9/93, 4/9/93 2320-"
    3PRINT'"PROFILES OF INTEGERS 1-1,000,000,        BY DS MCDONALD, WGTN, N.Z., (04)896-820"
    4ON ERROR  REPORT : @% = 10  : N% = I%
    5INPUT'"ENTER START NO., 1 - N <= 1E6,  Q.UIT"; N$
    6IF N$ = "Q" OR N$ = "q" THEN PRINT CHR$(7) "PGM PROFILE  E N D.": END
    7IF N$ <> "" THEN N% = EVAL N$
    8IF N% < 1 THEN N% = 1
    9MODE 11  : REM -----------
   10PRINT'"NO. | SQUARE | SUM SQS | SQR | LOG | FACTORS | RECIP. | CTD FRAC."
   11  REM  DIMP%(25)
   12DATA 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
   13FOR  I%  =  N% TO 2E9
   14IF I% MOD 5 = 0 THEN COLOUR 2 : PRINT'CHR$ 7 "NO. | SQUARE | SUM SQS | SQR | LOG | FACTORS | RECIP. | CTD FRAC.==CONTINU"; GET$
   15 COLOUR 3 
   16PRINT'; I%","; TAB(9); I%*I%",";   :  REM NO., SQUARE
   17R%  =  SQR I%  : REM  PRINTTAB(18); R%"  "I%MODR%; 
   18PROCSQSQ(I%)
   19@%  =  &20208
   20PRINT; TAB(25); SQR I%; TAB(33); LOG I%"   ";   :  REM SQROOT, LOG BASE 10
   21@%  =  10
   22PROCFACTORS(I%)
   23REM  PROCSQSQ(I%)
   24PROCCTDFRAC(I%)
   25NEXT  I%
   26PRINT'"PROG PROFILE  E N D.";   : STOP
   27  : 
   28DEF PROCFACTORS(X%)  :  REM PRINT OUT PRIME FACTORS OF X
   29RESTORE
   30   F% = 0
   30REPEAT
   31   IF F% < 97 THEN READ F%  ELSE F% += 2
   31REPEAT Q%  =  X% MOD F%
   32IF  Q% = 0  THEN PRINT;  F%".";     :  X%  = X% DIV F%
   33UNTIL  Q% > 0
   34UNTIL  X% < F%*F%    :   REM  OR F% = 97
   35IF  X% > 1  THEN  PRINT;  X%"  ";
   36ENDPROC
   37  : 
   38DEF PROCSQSQ(X%)  :  REM PRINTOUT SQUARE + SQUARE, ETC.
   39R%  =  SQR X%
   40REM  PRINT; TAB(10)R%","X%-R%*R%;
   41FOR  J%  =  R% TO  .7*R%+1 STEP-1
   42S%  =  I%-J%*J%
   43T%  =  SQR S%
   44IF  T%*T%  =  S% THEN  PRINT TAB(14); J%*J%","S%"  ";
   45NEXT  J%
   46ENDPROC
   47  : 
   48DEF PROCCTDFRAC(X%)  :  REM PRINTOUT CONTINUED FRACTION
   49Z = EVAL("."+STR$ X%)
   50PRINT TAB(44);  1/Z" ";
   51   ZZ% = 0
   51WHILE Z > 0  AND ZZ% < 9
   52Z  =  1/Z    :  Y%  =  Z    :  PRINT;  Y%",";
   53Z  =  Z - Y%  : 
   54   ZZ% += 1
   54  ENDWHILE
   55  ENDPROC
   56  : 