100 PROGRAM "PI.bas" 110 LET N=100 ! Nuber of digits 120 LET LN=INT(10*N/3)+16 130 DIM A(LN) 140 LET PD,N9=0:LET ND=1 150 FOR J=1 TO LN 160 LET A(J-1)=2 170 NEXT 180 FOR J=1 TO N 190 LET Q=0 200 FOR I=LN TO 1 STEP-1 210 LET X=10*A(I-1)+Q*I 220 LET A(I-1)=X-(2*I-1)*INT(X/(2*I-1)) 230 LET Q=INT(X/(2*I-1)) 240 NEXT 250 LET A(0)=Q-10*INT(Q/10) 260 LET Q=INT(Q/10) 270 SELECT CASE Q 280 CASE 9 290 LET N9=N9+1 300 CASE 10 310 LET D=PD+1:CALL WRITE 320 IF N9>0 THEN 330 FOR K=1 TO N9 340 LET D=0:CALL WRITE 350 NEXT 360 END IF 370 LET PD,N9=0 380 CASE ELSE 390 LET D=PD:CALL WRITE 400 LET PD=Q 410 IF N9<>0 THEN 420 FOR K=1 TO N9 430 LET D=9:CALL WRITE 440 NEXT 450 LET N9=0 460 END IF 470 END SELECT 480 NEXT 490 PRINT STR$(PD)(1) 500 END 510 DEF WRITE 520 IF ND=0 THEN 530 PRINT STR$(D)(1); 540 ELSE IF D<>0 THEN 550 PRINT STR$(D)(1);"."; 560 LET ND=0 570 END IF 580 END DEF