Algorithm B:
n = radix10_numerator( R );
d = radix10_denominator( R );
p[ 0 ] = 0;
p[ 1 ] = 1;
q[ 0 ] = 1;
q[ 1 ] = 0;
i = 2;
do
{
p[ i ] = ( n div d ) * p[ i - 1] + p[ i - 2 ];
q[ i ] = ( n div d ) * q[ i - 1] + q[ i - 2 ];
i = i + 1;
temp = d;
d = n modulo d;
n = temp;
} while ( n modulo d != 0 );