Square Root's Partial Quotients

By James Donnelly


The Square Root's Partial Quotients Program is adapted from an HP 48 program written by Joe Horn, and uses a DO loop to compute a list of partial quotients of the continued fraction equal to the square root of an integer. The result list consists of an integer followed by the repeating quotient sequence. For example, an input of 25 returns the list {1} because the square root is exactly 5. An input of 18 returns the list {4,4,8} which means that SQRT(18)=4+1/(4+1/(8+1/(4+1/(8+... with 4 8 repeating.

SQPQ Variables
Variable
Description
DDenominator
L1Result list
NNumerator
TCurrent term
XInput integer

Some characters on the HP 38G, like the store-arrow (\|>), are represented in the listing below by special three-character sequences. For a full list of these sequences, you can refer to the HP 38G Character Translation Codes page.

INPUT X;"\v/ Partial Quotient";"Integer:";"Enter a positive integer";X:  Get value for X
SYSEVAL 532268:                Clear list L1
IF FRAC(\v/X)\=/0 THEN         If the fractional part of SQRT(X) <> 0 then
                               compute quotient sequence
  1\|>D:0\|>N:                 Initialize numerator, denominator
  DO
    INT((\v/X+N)/D)\|>T:       Next term
    CONCAT(L1,{T})\|>L1:       Add term to list
    D*T-N\|>N:                 Update numerator
    (X-N^2)/D\|>D:             Update denominator
  UNTIL
    D==1                       Repeat until denominator=1
  END
  CONCAT(L1,{N*2})\|>L1:       Add last term to list
ELSE
  {1}\|>L1:                    If fractional part of SQRT(X)=0
END:
ERASE:                         Clear display
MSGBOX L1                      Display result

Back to James Donnelly's web site.
Back to the HP 38G page.
Back to the main calculator page.