Notes on integer division. Notes on integer division.
Version of Tuesday 12 May 2026 (originally 2016).
Dave Barber's other pages.

§1. Important in mathematics is the elementary operation known as division, which is often introduced in elementary schools.

It requires two numerical inputs. The first is called a numerator or dividend; and the second a denominator or divisor. In nearly all mathematical contexts, including this report, the denominator is not allowed to be zero. Division generates either one or two outputs, depending on what sort of numbers are used.

We prefer the terms "numerator and "denominator" rather than "dividend" and "divisor" because the latter two both start with the letter "d", causing an inconvenience in defining single-letter symbols.

There will be one output (the quotient) when using for instance rational numbers or real numbers. This variety of division was created in order to be the inverse of multiplication, in the sense that multiplying the quotient by the denominator yields the numerator exactly.

There will be two outputs (the quotient and remainder) with for example ordinary integers or Gaussian integers. With inputs of an integral nature, it is not always possible to find a quotient such that the quotient times the denominator equals the numerator exactly. Instead is sought an approximate quotient, with the remainder to house the error. More specifically, when the remainder is added to the product of the quotient and the denominator, the numerator is obtained (see Euclidean division). This report is an examination of what the word "approximate" might mean.

Contrast that the quotient in one-output division is always exact, but the quotient in two-output division might not be.


In the text below, majuscules N will stand for numerator, D denominator, Q quotient, and R remainder. Ordered-pair notation with square brackets will be used to write the results of the prototypical integer division problem: N ÷ D = [ Q, R ].

Sometimes it is helpful to have a functional notation for the quotient or remainder. Hence define the quo function as a way of extracting the quotient from the ordered pair, established by the identity N ÷ D = [ quo (N, D), R ]. Similarly define function rem such that N ÷ D = [ Q, rem (N, D) ].

In nearly every treatment of integer division, including this report, two key constraints are enforced:

Q × D + R = N
| R | < | D |

where the vertical lines indicate absolute value.

A consequence of these constraints is that the quotient, if not an integer, will be rounded to either the closest integer above or the closest integer below.


§2. When the integers involved in division are limited to nonnegative values, there is no question what the results ought to be. For instance, 37 ÷ 5 = [ 7, 2 ]. If a larger Q were chosen, then R < 0; if Q were smaller, then | R | ≥ | D |.

However, when all four values are allowed to be negative, options emerge. All of the following satisfy the two key constraints:

+37 ÷ +5 = [ +7, +2 ]or +37 ÷ +5 = [ +8, −3 ]
+37 ÷ −5 = [ −7, +2 ]or +37 ÷ −5 = [ −8, −3 ]
−37 ÷ +5 = [ −7, −2 ]or −37 ÷ +5 = [ −8, +3 ]
−37 ÷ −5 = [ +7, −2 ]or −37 ÷ −5 = [ +8, +3 ]

On the other hand, if N is a multiple of D, then R = 0, and the answer must be unique:

+63 ÷ +7 = [ +9, 0 ]
+63 ÷ −7 = [ −9, 0 ]
−63 ÷ +7 = [ −9, 0 ]
−63 ÷ −7 = [ +9, 0 ]

When R ≠ 0, and there is a choice of two answers, is one better than the other? Many programming languages support integer division, but they offer minimal guidance on this question as they are remarkably inconsistent when dealing with negative values. Meanwhile, mathematical number theory gives little enlightenment as it rarely investigates integer division involving negative numbers.

To aid in organizating this matter, division problems can be split into cases according to N and D:

The final four cases will be called quadrants, and are the focus of this report. In nearly every programming language that offers integer division of negatives, there is within each quadrant a consistent rounding policy, and it is one or the other of the following:

Within a language, however, knowing the rounding policy within one quadrant gives little clue how other quadrants will be rounded; and consistency between languages is notoriously lacking. Indeed, some programming languages leave the behavior with negative operands to be "implementation defined", which usually amounts to whatever the hardware directly supports.

With four quadrants, and two standard rounding schemes, 16 = 24 possibilities arise, and it helps to list them in table one below wherein:

A division rule is modular if and only if N ÷ D = [ Q, R ] implies both of these:

for all N and all nonzero D. Modularity, or the lack of it, is most conspicuous when N < 0 but N + D > 0, or vice versa.


§3. Tables 1A and 1B elaborate the rounding policies of the sixteen cases. Although the two tables list the same information, they differ in how they are organized:

Any two rounding policies whose line numbers add to 17 are, in some sense, opposites of each other. Uniformity, mentioned in the last column of each table, will be explained in table 2.

table 1A
with examples
quadrant 1
N < 0, D < 0
quadrant 2
N < 0, D > 0
quadrant 3
N > 0, D < 0
quadrant 4
N > 0, D > 0
characterization line
number
uniform?
Q → −∞
−37 ÷ −5 = [ +7, −2 ]
Q → −∞
−37 ÷ +5 = [ −8, +3 ]
Q → −∞
+37 ÷ −5 = [ −8, −3 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
Q → −∞ always R × D ≥ 0 modular 1 yes
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
  2 no
Q → +∞
+37 ÷ −5 = [ −7, +2 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
  3 no
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
Q → −∞ when N < 0
Q → +∞ when N > 0
R × Q ≤ 0   4 yes
Q → +∞
−37 ÷ +5 = [ −7, −2 ]
Q → −∞
+37 ÷ −5 = [ −8, −3 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
  5 no
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
Q → −∞ when D < 0
Q → +∞ when D > 0
R ≤ 0 modular 6 yes
Q → +∞
+37 ÷ −5 = [ −7, +2 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
Q → 0 always R × N ≥ 0   7 yes
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
  8 no
Q → +∞
−37 ÷ −5 = [ +8, +3 ]
Q → −∞
−37 ÷ +5 = [ −8, +3 ]
Q → −∞
+37 ÷ −5 = [ −8, −3 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
  9 no
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
Q ← 0 always R × N ≤ 0   10 yes
Q → +∞
+37 ÷ −5 = [ −7, +2 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
Q → +∞ when D < 0
Q → −∞ when D > 0
R ≥ 0 modular 11 yes
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
  12 no
Q → +∞
−37 ÷ +5 = [ −7, −2 ]
Q → −∞
+37 ÷ −5 = [ −8, −3 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
Q → +∞ when N < 0
Q → −∞ when N > 0
R × Q ≥ 0   13 yes
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
  14 no
Q → +∞
+37 ÷ −5 = [ −7, +2 ]
Q → −∞
+37 ÷ +5 = [ +7, +2 ]
  15 no
Q → +∞
+37 ÷ +5 = [ +8, −3 ]
Q → +∞ always R × D ≤ 0 modular 16 yes
in every case, N × D × Q ≥ 0      

table 1B
a rearrangement of table 1A
quadrant 1
N < 0, D < 0
quadrant 2
N < 0, D > 0
quadrant 3
N > 0, D < 0
quadrant 4
N > 0, D > 0
characterization line
number
uniform?
Q → 0
−37 ÷ −5 = [ +7, −2 ]
Q → 0
−37 ÷ +5 = [ −7, −2 ]
Q → 0
+37 ÷ −5 = [ −7, +2 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
Q → 0 always R × N ≥ 0   7 yes
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
  8 no
Q ← 0
+37 ÷ −5 = [ −8, −3 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
  5 no
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
Q → −∞ when D < 0
Q → +∞ when D > 0
R ≤ 0 modular 6 yes
Q ← 0
−37 ÷ +5 = [ −8, +3 ]
Q → 0
+37 ÷ −5 = [ −7, +2 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
  3 no
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
Q → −∞ when N < 0
Q → +∞ when N > 0
R × Q ≤ 0   4 yes
Q ← 0
+37 ÷ −5 = [ −8, −3 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
Q → −∞ always R × D ≥ 0 modular 1 yes
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
  2 no
Q ← 0
−37 ÷ −5 = [ +8, +3 ]
Q → 0
−37 ÷ +5 = [ −7, −2 ]
Q → 0
+37 ÷ −5 = [ −7, +2 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
  15 no
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
Q → +∞ always R × D ≤ 0 modular 16 yes
Q ← 0
+37 ÷ −5 = [ −8, −3 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
Q → +∞ when N < 0
Q → −∞ when N > 0
R × Q ≥ 0   13 yes
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
  14 no
Q ← 0
−37 ÷ +5 = [ −8, +3 ]
Q → 0
+37 ÷ −5 = [ −7, +2 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
Q → +∞ when D < 0
Q → −∞ when D > 0
R ≥ 0 modular 11 yes
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
  12 no
Q ← 0
+37 ÷ −5 = [ −8, −3 ]
Q → 0
+37 ÷ +5 = [ +7, +2 ]
  9 no
Q ← 0
+37 ÷ +5 = [ +8, −3 ]
Q ← 0 always R × N ≤ 0   10 yes
in every case, N × D × Q ≥ 0      

For eight of the sixteen policies, no concise characterization is apparent; these are not uniform. With each, there is one direction of infinity rounding that differs from the other three, and one direction of zero rounding that differs from the other three. As a result, these eight policies are less likely to be useful than the other eight. In table two below, the exceptions are marked with diamonds:

table 2 — all non-uniform
quadrant 1
N < 0, D < 0
quadrant 2
N < 0, D > 0
quadrant 3
N > 0, D < 0
quadrant 4
N > 0, D > 0
line
number
Q → −∞
Q → 0
Q → −∞
Q ← 0
Q → −∞
Q ← 0
Q → +∞
Q ← 0
2
Q → −∞
Q → 0
Q → −∞
Q ← 0
Q → +∞
Q → 0
Q → −∞
Q → 0
3
Q → −∞
Q → 0
Q → +∞
Q → 0
Q → −∞
Q ← 0
Q → −∞
Q → 0
5
Q → −∞
Q → 0
Q → +∞
Q → 0
Q → +∞
Q → 0
Q → +∞
Q ← 0
8
Q → +∞
Q ← 0
Q → −∞
Q ← 0
Q → −∞
Q ← 0
Q → −∞
Q → 0
9
Q → +∞
Q ← 0
Q → −∞
Q ← 0
Q → +∞
Q → 0
Q → +∞
Q ← 0
12
Q → +∞
Q ← 0
Q → +∞
Q → 0
Q → −∞
Q ← 0
Q → +∞
Q ← 0
14
Q → +∞
Q ← 0
Q → +∞
Q → 0
Q → +∞
Q → 0
Q → −∞
Q → 0
15

Not obvious from the tables is that rounding based on zero satisfies certain equalities:

+ quo (−N, −D) = − quo (−N, +D) = − quo (+N, −D) = + quo (+N, +D)
and
+ rem (−N, −D) = + rem (−N, +D) = − rem (+N, −D) = − rem (+N, +D)
when
Q is consistently rounded toward zero (line 7)
or
Q is consistently rounded away from zero (line 10)


In a completely different approach, some researchers might prefer to base the categories on the behavior of R rather than Q.


§4. An alternative to the system above is to round Q so as to minimize the absolute value of R. When D is an odd number, this procedure is unambiguous:

table 3
−36 ÷ −5 = [ +7, −1 ]
−37 ÷ −5 = [ +7, −2 ]
−38 ÷ −5 = [ +8, +2 ]
−39 ÷ −5 = [ +8, +1 ]
−36 ÷ +5 = [ −7, −1 ]
−37 ÷ +5 = [ −7, −2 ]
−38 ÷ +5 = [ −8, +2 ]
−39 ÷ +5 = [ −8, +1 ]
+36 ÷ −5 = [ −7, +1 ]
+37 ÷ −5 = [ −7, +2 ]
+38 ÷ −5 = [ −8, −2 ]
+39 ÷ −5 = [ −8, −1 ]
+36 ÷ +5 = [ +7, +1 ]
+37 ÷ +5 = [ +7, +2 ]
+38 ÷ +5 = [ +8, −2 ]
+39 ÷ +5 = [ +8, −1 ]

On the other hand, when D is even, there is a choice:

−51 ÷ −6 = [ +8, −3 ]or −51 ÷ −6 = [ +9, +3 ]
−51 ÷ +6 = [ −8, −3 ]or −51 ÷ +6 = [ −9, +3 ]
+51 ÷ −6 = [ −8, +3 ]or +51 ÷ −6 = [ −9, −3 ]
+51 ÷ +6 = [ +8, +3 ]or +51 ÷ +6 = [ +9, −3 ]

One way to resolve this is to choose, in the halfway case, one of the sixteen options in tables 1A-B above. Another way is to round so that the quotient will be an even number; the sequences in table 4 below illustrate how to do this. Highlighted are the halfway cases:

table 4
quadrant 1
N < 0, D < 0
quadrant 2
N < 0, D > 0
quadrant 3
N > 0, D < 0
quadrant 4
N > 0, D > 0
−42 ÷ −6 = [ +7,  0 ]
−43 ÷ −6 = [ +7, −1 ]
−44 ÷ −6 = [ +7, −2 ]
−45 ÷ −6 = [ +8, +3 ]
−46 ÷ −6 = [ +8, +2 ]
−47 ÷ −6 = [ +8, +1 ]
−48 ÷ −6 = [ +8,  0 ]
−49 ÷ −6 = [ +8, −1 ]
−50 ÷ −6 = [ +8, −2 ]
−51 ÷ −6 = [ +8, −3 ]
−52 ÷ −6 = [ +9, +2 ]
−53 ÷ −6 = [ +9, +1 ]
−54 ÷ −6 = [ +9,  0 ]
−42 ÷ +6 = [ −7,  0 ]
−43 ÷ +6 = [ −7, −1 ]
−44 ÷ +6 = [ −7, −2 ]
−45 ÷ +6 = [ −8, +3 ]
−46 ÷ +6 = [ −8, +2 ]
−47 ÷ +6 = [ −8, +1 ]
−48 ÷ +6 = [ −8,  0 ]
−49 ÷ +6 = [ −8, −1 ]
−50 ÷ +6 = [ −8, −2 ]
−51 ÷ +6 = [ −8, −3 ]
−52 ÷ +6 = [ −9, +2 ]
−53 ÷ +6 = [ −9, +1 ]
−54 ÷ +6 = [ −9,  0 ]
+42 ÷ −6 = [ −7,  0 ]
+43 ÷ −6 = [ −7, +1 ]
+44 ÷ −6 = [ −7, +2 ]
+45 ÷ −6 = [ −8, −3 ]
+46 ÷ −6 = [ −8, −2 ]
+47 ÷ −6 = [ −8, −1 ]
+48 ÷ −6 = [ −8,  0 ]
+49 ÷ −6 = [ −8, +1 ]
+50 ÷ −6 = [ −8, +2 ]
+51 ÷ −6 = [ −8, +3 ]
+52 ÷ −6 = [ −9, −2 ]
+53 ÷ −6 = [ −9, −1 ]
+54 ÷ −6 = [ −9,  0 ]
+42 ÷ +6 = [ +7,  0 ]
+43 ÷ +6 = [ +7, +1 ]
+44 ÷ +6 = [ +7, +2 ]
+45 ÷ +6 = [ +8, −3 ]
+46 ÷ +6 = [ +8, −2 ]
+47 ÷ +6 = [ +8, −1 ]
+48 ÷ +6 = [ +8,  0 ]
+49 ÷ +6 = [ +8, +1 ]
+50 ÷ +6 = [ +8, +2 ]
+51 ÷ +6 = [ +8, +3 ]
+52 ÷ +6 = [ +9, −2 ]
+53 ÷ +6 = [ +9, −1 ]
+54 ÷ +6 = [ +9,  0 ]

The advantage of rounding Q to an even number in the halfway cases is that in a long series of calculations:

An equivalent alternative, in the halfway cases, is to consistently round Q to a number that is odd rather than even.


§5. With Gaussian integers (in other words, complex numbers whose real and imaginary parts are integers) there can be more than two combinations fulfilling the two key constraints; how to organize them is not obvious. Example:

(+17, +4) ÷ (−2, +3) = (−2213, −5913) exactly

When each of the real and imaginary parts is rounded up or down, these four integer cases result:

(+17, +4) ÷ (−2, +3) = [ (−2, −5), (−2,  0) ]
or
(+17, +4) ÷ (−2, +3) = [ (−2, −4), (+1, +2) ]
or
(+17, +4) ÷ (−2, +3) = [ (−1, −5), ( 0, −3) ]
or
(+17, +4) ÷ (−2, +3) = [ (−1, −4), (+3, −1) ]

Table 5 has more examples. Each complex number is written in the form (real part, imag part; norm), where the norm is the square of the magnitude. Depending on the values of N and D, there can be anywhere between one and four solutions satisfying the two key constraints:

table 5
Gaussian examples
N ÷ D[ Q, R ]R norms …
(+43, +11;  1970) ÷ (−2, −4; 20) = [ (−7, +7;  98), (+1, −3; 10) ] all equal
[ (−7, +8; 113), (−3, −1; 10) ]
[ (−6, +7;  85), (+3, +1; 10) ]
[ (−6, +8; 100), (−1, +3; 10) ]
(+62, −71;  8885) ÷ ( 0, −4; 16) = [ (+17, +15; 514), (+2, −3; 13) ] equal in pairs
[ (+17, +16; 545), (−2, −3; 13) ]
[ (+18, +15; 549), (+2, +1;  5) ]
[ (+18, +16; 580), (−2, +1;  5) ]
(+55, +30;  3925) ÷ (−5, +3; 34) = [ (−6, −10; 136), (−5, −2; 29) ] all different
[ (−6,  −9; 117), (−2, +3; 13) ]
[ (−5, −10; 125), ( 0, −5; 25) ]
[ (−5,  −9; 106), (+3,  0;  9) ]
(+77, −94; 14765) ÷ (+1, −5; 26) = [ (+21, +11; 562), (+1,  0;  1) ] all different
[ (+21, +12; 585), (−4, −1; 17) ]
[ (+22, +11; 605), ( 0, +5; 25) ]
( +4, −74;  5492) ÷ (−3, −3; 18) = [ (+11, +13; 290), (−2, −2; 8) ] different
[ (+12, +13; 313), (+1, +1; 2) ]
(−93, +66; 13005) ÷ ( 0, −2;  4) = [ (−33, −47; 3298), (+1, 0; 1) ] equal
[ (−33, −46; 3205), (−1, 0; 1) ]
(+67, +78; 10573) ÷ ( 0, −1;  1) = [ (−78, +67; 10573), (0, 0; 0) ]

A general theory was not apparent, so we used a perturbative search method to generate the results in the above table:

1. Choose two Gaussian integers NG and DG.
2. Interpret them as complex numbers over the reals, NR and DR respectively.
3. Calculate QR = NR × DR−1.
4. Independently round each of the real and imaginary parts of QR to its nearest integer, forming Gaussian QG0. This is the central quotient.
5. Perturb QG0:
   • In an outer loop, successively add the deviations (−3, −2, −1, 0, +1, +2, +3) to the real part of QG0, forming a new QG1 each time.
     • In an inner loop, successively add the deviations (−3, −2, −1, 0, +1, +2, +3) to the imaginary part of QG1, forming a new QG2 each time.
       • For each of these 49 = 72 combinations, calculate RG = NGQG2 × DG. If | R | < | D |, record [ QG2, RG ] as a valid quotient-remainder pair.

When both deviations are zero, the central quotient results.

The choice of ±3 for the deviation limits was arbitrary, and this limit is not been proven to reveal all valid [ QG2, RG ] pairs. However, in our experiments:


An area for further research is the Eisenstein integers, which are a second way to manage an integral subset of the complex numbers. Questions of quotient and remainder apply here, also.


§6. Quaternions, which can be regarded as an extension of the complex numbers, are most frequently implemented as ordered quadruples of real numbers, in the same way that that complex numbers can be implemented as ordered pairs of real numbers. However, integer quaternions are certainly amenable to the calculation of quotients and remainders.

There are two well-known ways to define integer quaternions. The more obvious is according to the Lipschitz criterion, which says simply that each of the four components must be an ordinary real integer. However, a greater amount of study has been devoted to quaternions satisfying the Hurwitz criterion, which dictates that all four components must be whole integers, or all four components must be half of odd integers — no mixing of wholes and halves is allowed. The Lipschitz quaternions are a subset of the Hurwitz quaternions. Examples:

Hurwitz & LipschitzHurwitz onlyneither
( +14, −6, 0, +3 )
( 0, 0, 0, 0 )
( +2712, −1112, +112, +712 )
( +112, −112, +112, +512 )
( +14, −1112, 0, +512 )
( 0, 0, 0, −112 )

Few if any researchers regard items in the "neither" column as integer quaternions for any purpose, although they remain valid as quaternions over the reals.

Easy to see is that the set of Lipschitz quaternions is closed under addition, subtraction and multiplication, when the usual rules for quaternion arithmetic are employed. For the Hurwitz quaternions, this same is true but less obvious. Each Hurwitz has, in a special sense, an essentially unique prime factorization; this is a key reason that Hurwitz quaternions have received extensive study. By contrast, a Lipschitz might have several prime factorizations that are not particularly related.

Because quaternion multiplication is noncommutative, the first of the key constraints now comes in two versions:

Q × D + R = N
or
D × Q + R = N

while the second requires no change:

| R | < | D |

With two kinds of integer quaternions, and two versions of the first key constraint, the study of integer quotients and remainders is best handled as four cases:

In tables 6A-D below are some examples what the quotients and remainders can be, given some arbitrary choices for N and D. They were found using a perturbative method similar to that used above for complex numbers.

Lipschitz quaternions can use the same search method as for Gaussian integers, except that the loops will be four levels deep instead of two. This means that if the deviations are still (−3, −2, −1, 0, +1, +2, +3), then 2401 = 74 candidates will be considered.

Hurwitz quaternions require two procedures, one after the other:

Tables 6A-B-C give examples with Hurwitz quaternions:

table 6A
Hurwitz example — N halves, D halves
NH = (+3½, +37½, +8½, +37½; 2897)
DH = (−3½, −1½, −4½, +3½; 47)
QR = NR × DR−1
 
RH = NHQH × DH
 
11 solutions
QH RH
(+½, −7½, +3½, −½; 69)(−1, +2, −4, −5; 46)
(+½, −7½, +3½, +½; 69)(+2½, −2½, −2½, −1½; 21)
(+½, −6½, +3½, −½; 55)(−2½, +5½, −½, −½; 37)
(+½, −6½, +3½, +½; 55)(+1, +1, +1, +3; 12)
(+½, −6½, +4½, +½; 63)(−3½, −2½, +4½, +1½; 41)
(0, −7, +3, 0; 58)(+½, +2½, −5½, +1½; 39)
(0, −7, +4, 0; 65)(−4, −1, −2, 0; 21)
(0, −7, +4, +1; 66)(−½, −5½, −½, +3½; 43)
(+1, −7, +3, 0; 59)(+4, +4, −1, −2; 37)
(+1, −7, +4, 0; 66)(−½, +½, +2½, −3½; 19)
(+1, −7, +4, +1; 67)(+3, −4, +4, 0; 41)
QR = DR−1 × NR
 
RH = NHDH × QH
 
10 solutions
QH RH
(+½, +1½, −4½, −6½; 65)(+½, −1½, −½, −½; 3)
(+½, +1½, −4½, −5½; 53)(+4, +3, −2, +3; 38)
(+½, +1½, −3½, −6½; 57)(−4, +2, +3, +1; 30)
(+½, +2½, −4½, −6½; 69)(−1, +2, −4, −5; 46)
(0, +1, −4, −6; 53)(−1, 0, 0, +6; 37)
(0, +2, −4, −7; 69)(−6, −1, −2, −2; 45)
(0, +2, −4, −6; 56)(−2½, +3½, −3½, +1½; 33)
(+1, +1, −4, −6; 54)(+2½, +1½, +4½, +2½; 35)
(+1, +2, −4, −7; 70)(−2½, +½, +2½, −5½; 43)
(+1, +2, −4, −6; 57)(+1, +5, +1, −2; 31)
 
table 6B
Hurwitz example — N halves, D wholes
NH = (−58½, −4½, +13½, −5½; 7795)
DH = (−8, +14, +13, −2; 433)
QR = NR × DR−1
 
RH = NHQH × DH
 
11 solutions
QH RH
(−½, +1½, +3½, +2½; 21)(−1, +18, +10, −2; 429)
(+½, +½, +3½, +2½; 19)(−7, −4, −1, +13; 235)
(+½, +1½, +2½, +2½; 15)(−6, +2, −11, −14; 357)
(+½, +1½, +3½, +1½; 17)(+9, −9, +11, −8; 347)
(+½, +1½, +3½, +2½; 21)(+7, +4, −3, 0; 74)
(0, +1, +3, +2; 14)(−9½, −½, +7½, −5½; 177)
(0, +1, +3, +3; 19)(−11½, +12½, −6½, +2½; 337)
(0, +1, +4, +2; 21)(+3½, +1½, +15½, +8½; 327)
(+1, +1, +3, +2; 15)(−1½, −14½, −5½, −3½; 255)
(+1, +1, +3, +3; 20)(−3½, −1½, −19½, +4½; 415)
(+1, +1, +4, +2; 22)(+11½, −12½, +2½, +1½; 405)
QR = DR−1 × NR
 
RH = NHDH × QH
 
8 solutions
QH RH
(0, +4, −1, −1; 18)(−13½, +6½, −½, +7½; 281)
(0, +4, 0, −1; 17)(−½, +4½, +7½, −6½; 119)
(+1, +4, −1, −1; 19)(−5½, −7½, −13½, +9½; 359)
(+1, +4, 0, −1; 18)(+7½, −9½, −5½, −4½; 197)
(+½, +3½, −½, −1½; 15)(−9, +1, −11, −9; 284)
(+½, +3½, −½, −½; 13)(−11, −12, +3, −1; 275)
(+½, +4½, −½, −1½; 23)(+5, +9, −9, +4; 203)
(+½, +4½, −½, −½; 21)(+3, −4, +5, +12; 194)
 
table 6C
Hurwitz example — N wholes, D halves
NH = (−13, +67, +30, −27; 6287)
DH = (+7½, −11½, +11½, −½; 321)
QR = NR × DR−1
 
RH = NHQH × DH
 
10 solutions
QH RH
(−2, 0, 0, −5; 29)(+4½, −13½, −4½, +9½; 313)
(−2, 0, 0, −4; 20)(+4, −2, +7, +2; 73)
(−2, +1, 0, −4; 21)(−7½, −9½, +6½, −9½; 279)
(−1, 0, 0, −4; 17)(−3½, +9½, −4½, +2½; 129)
(−1½, −½, −½, −4½; 23)(+½, +1½, −½, +17½; 309)
(−1½, −½, +½, −4½; 23)(+12, +2, −8, +6; 248)
(−1½, +½, −½, −4½; 23)(−11, −6, −1, +6; 194)
(−1½, +½, −½, −3½; 15)(−11½, +5½, +1½, −1½; 275)
(−1½, +½, +½, −4½; 23)(+½, −5½, −8½, −5½; 133)
(−1½, +½, +½, −3½; 15)(0, +6, +3, −13; 214)
QR = DR−1 × NR
 
RH = NHDH × QH
 
11 solutions
QH RH
(−2, +2, +2, +2; 16)(+1, +5, +16, +3; 291)
(−2, +2, +2, +3; 21)(+½, −6½, +4½, −4½; 83)
(−2, +2, +3, +3; 26)(+12, −7, −3, +7; 251)
(−1, +2, +2, +3; 18)(−7, +5, −7, −4; 139)
(−1, +2, +3, +3; 23)(+4½, +4½, −14½, +7½; 307)
(−1½, +1½, +1½, +2½; 13)(−3, +9, +8, −12; 298)
(−1½, +1½, +2½, +2½; 17)(+8½, +8½, +½, −½; 145)
(−1½, +1½, +2½, +3½; 23)(+8, −3, −11, −8; 258)
(−1½, +2½, +1½, +2½; 17)(−14½, +1½, +8½, −½; 285)
(−1½, +2½, +2½, +2½; 21)(−3, +1, +1, +11; 132)
(−1½, +2½, +2½, +3½; 27)(−3½, −1½, −1½, +3½; 245)

A search can be conducted to find [ Q, R ] solutions for Lipschitz [ N, D ] pairs. Afterwards, the [ N, D ] pairs can be reinterpreted as Hurwitz quaternions in order to perform a second search. Yielded will be all the Lipschitz solutions, and probably some Hurwitz-only solutions as well. Example:

table 6D
Hurwitz & Lipschitz example — N wholes, D wholes
NH = NL = (+7, +11, −3, +23; 708)
DH = DL = (+15, +6, +5, 0; 286)
QR = NR × DR−1
 
RH = NHQH × DH
RL = NLQL × DL
 
11 Hurwitz solutions,
5 Lipschitz solutions
QH RH
(0, +1, −1, +1; 3)(+8, +1, +6, −3; 110) also Lipschitz
QL, RL
(0, +1, 0, +1; 2)(+13, +1, −9, +3; 260)
(+1, 0, −1, +1; 3)(−13, +10, +1, +2; 274)
(+1, +1, −1, +1; 4)(−7, −5, +1, −3; 84)
(+1, +1, 0, +1; 3)(−2, −5, −14, +3; 234)
(+½, +½, −1½, +½; 3)(−5, +3, +14, +4; 246)
(+½, +½, −1½, +1½; 5)(−5, +8, +8, −11; 274)
(+½, +½, −½, +½; 1)(0, +3, −1, +10; 110)
(+½, +½, −½, +1½; 3)(0, +8, −7, −5; 138)
(+½, +1½, −½, +½; 3)(+6, −12, −1, +5; 206)
(+½, +1½, −½, +1½; 5)(+6, −7, −7, −10; 234)
QR = DR−1 × NR
 
RH = NHDH × QH
RL = NLDL × QL
 
8 Hurwitz solutions,
4 Lipschitz solutions
QH RH
(0, 0, 0, +1; 1)(+7, +6, +3, +8; 158) also Lipschitz
QL, RL
(0, 0, 0, +2; 4)(+7, +1, +9, −7; 180)
(+1, 0, 0, +1; 2)(−8, 0, −2, +8; 132)
(+1, 0, 0, +2; 5)(−8, −5, +4, −7; 154)
(+½, −½, −½, +1½; 3)(−6, +8, +11, +1; 222)
(+½, −½, +½, +1½; 3)(−1, +8, −4, −5; 106)
(+½, +½, −½, +1½; 3)(0, −7, +11, +6; 206)
(+½, +½, +½, +1½; 3)(+5, −7, −4, 0; 90)

The industrious student may wish to extend this method to integral octonions.