Figure 2 Given a real number, R, this algorithm produces a sequence of simpler — but always improving — ratio approximations.

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 );