27 lines
802 B
Text
27 lines
802 B
Text
100 REM Egyptian division
|
|
110 DIM Table(0 TO 31, 0 TO 1)
|
|
120 LET Dividend = 580
|
|
130 LET Divisor = 34
|
|
140 REM ** Division
|
|
150 LET I = 0
|
|
160 LET Table(I, 0) = 1
|
|
170 LET Table(I, 1) = Divisor
|
|
180 DO WHILE Table(I, 1) < Dividend
|
|
190 LET I = I + 1
|
|
200 LET Table(I, 0) = Table(I - 1, 0) * 2
|
|
210 LET Table(I, 1) = Table(I - 1, 1) * 2
|
|
220 LOOP
|
|
230 LET I = I - 1
|
|
240 LET Answer = Table(I, 0)
|
|
250 LET Accumulator = Table(I, 1)
|
|
260 DO WHILE I > 0
|
|
270 LET I = I - 1
|
|
280 IF Table(I, 1) + Accumulator <= Dividend THEN
|
|
290 LET Answer = Answer + Table(I, 0)
|
|
300 LET Accumulator = Accumulator + Table(I, 1)
|
|
310 END IF
|
|
320 LOOP
|
|
330 REM ** Results
|
|
340 PRINT Dividend; "divided by"; Divisor; "using Egytian division";
|
|
350 PRINT " returns"; Answer; "remainder"; Dividend - Accumulator
|
|
360 END
|