29 lines
642 B
Text
29 lines
642 B
Text
10 REM Egyptian division
|
|
20 DIM T(31,1)
|
|
30 REM D1 - dividend; D2 - divisor
|
|
40 LET D1 = 580
|
|
50 LET D2 = 34
|
|
60 REM ** Division
|
|
70 LET I = 0
|
|
80 LET T(I,0) = 1
|
|
90 LET T(I,1) = D2
|
|
100 IF T(I,1) >= D1 THEN 160
|
|
110 LET I = I+1
|
|
120 LET T(I,0) = T(I-1,0)*2
|
|
130 LET T(I,1) = T(I-1,1)*2
|
|
140 GOTO 100
|
|
150 REM A - answer; C - accumulator
|
|
160 LET I = I-1
|
|
170 LET A = T(I,0)
|
|
180 LET C = T(I,1)
|
|
190 IF I <= 0 THEN 250
|
|
200 LET I = I-1
|
|
210 IF T(I,1)+C > D1 THEN 190
|
|
220 LET A = A+T(I,0)
|
|
230 LET C = C+T(I,1)
|
|
240 GOTO 190
|
|
250 REM ** Results
|
|
260 PRINT D1; "divided by"; D2;
|
|
270 PRINT "using Egyptian division";
|
|
280 PRINT " returns"; A; "remainder"; D1-C
|
|
290 END
|