RosettaCodeData/Task/Egyptian-division/FutureBasic/egyptian-division.basic
2025-02-27 18:35:13 -05:00

32 lines
655 B
Text

void local fn EgyptianDivision
int table(32, 2)
int i = 1, dividend = 580, divisor = 34
int answer, accumulator
table(i, 1) = 1
table(i, 2) = divisor
while ( table( i, 2 ) < dividend )
i++
table(i, 1) = table(i - 1, 1) * 2
table(i, 2) = table(i - 1, 2) * 2
wend
i--
answer = table(i, 1)
accumulator = table(i, 2)
while ( i > 1 )
i--
if table(i, 2) + accumulator <= dividend
answer += table(i, 1)
accumulator += table(i, 2)
end if
wend
printf @"Using Egyptian Division %d / %d = %d remainder %d", dividend, divisor, answer, dividend - accumulator
end fn
fn EgyptianDivision
HandleEvents