Post Reply 
Pi digits (again) - an unbounded spigot program
05-13-2024, 07:21 PM (This post was last modified: 05-14-2024 02:05 AM by toml_12953.)
Post: #9
RE: Pi digits (again) - an unbounded spigot program
(05-12-2024 05:03 PM)EdS2 Wrote:  Anyone care to convert the following Basic code, or something close to this JavaScript code, to an HP-71B, or perhaps to a Free42 based calculator, or a Prime, or perhaps a Sharp Pocket Computer?
Code:
   10 q = 1: r = 0: t = 1: k = 1: n = 3: l = 3
   20 REPEAT
   30   IF (q * 4 + r - t < n * t) ELSE GOTO 90
   40   PRINT ;n;
   50   nr = (r - n * t) * 10
   60   n = INT((q * 3 + r) * 10 / t) - n * 10
   70   q = q * 10: r = nr
   80 UNTIL FALSE
   90 nr = (q * 2 + r) * l
  100 nn = INT((q * k * 7 + 2 + r * l)/(t * l))
  110 q = q * k: t = t * l
  120 l = l + 2: k = k + 1
  130 n = nn: r = nr
  140 UNTIL FALSE

Here's the code in ANSI BASIC:
Code:
100 DECLARE EXTERNAL SUB digits
110 CALL digits
120 END
130 !
140 EXTERNAL SUB digits
150 LET q = 1
160 LET r = 0
170 LET t = 1
180 LET k = 1
190 LET n = 3
200 LET l = 3
210 DO
220    IF q * 4 + r - t < n * t THEN
230       PRINT n;
240       LET nr = (r - n * t) * 10
250       LET n = INT((q * 3 + r) * 10 / t) - n * 10
260       LET q = q * 10
270       LET r = nr
280    ELSE
290       LET nr = (q * 2 + r) * l
300       LET nn = INT((q * k * 7 + 2 + r * l) / (t * l))
310       LET q = q * k
320       LET t = t * l
330       LET l = l + 2
340       LET k = k + 1
350       LET n = nn
360       LET r = nr
370    END IF
380 LOOP
390 END SUB

Tom L
Cui bono?
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Pi digits (again) - an unbounded spigot program - toml_12953 - 05-13-2024 07:21 PM



User(s) browsing this thread: 1 Guest(s)