Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Kuṭṭaka

Kuṭṭaka is an algorithm for finding integer solutions of linear Diophantine equations. A linear
Diophantine equation is an equation of the form ax + by = c where x and y are unknown
quantities and a, b, and c are known quantities with integer values. The algorithm was
originally invented by the Indian astronomer-mathematician Āryabhaṭa (476–550 CE) and is
described very briefly in his Āryabhaṭīya. Āryabhaṭa did not give the algorithm the name
Kuṭṭaka, and his description of the method was mostly obscure and incomprehensible. It was
Bhāskara I (c. 600 – c. 680) who gave a detailed description of the algorithm with several
examples from astronomy in his Āryabhatiyabhāṣya, who gave the algorithm the name
Kuṭṭaka. In Sanskrit, the word Kuṭṭaka means pulverization (reducing to powder), and it
indicates the nature of the algorithm. The algorithm in essence is a process where the
coefficients in a given linear Diophantine equation are broken up into smaller numbers to get
a linear Diophantine equation with smaller coefficients. In general, it is easy to find integer
solutions of linear Diophantine equations with small coefficients. From a solution to the
reduced equation, a solution to the original equation can be determined. Many Indian
mathematicians after Aryabhaṭa have discussed the Kuṭṭaka method with variations and
refinements. The Kuṭṭaka method was considered to be so important that the entire subject
of algebra used to be called Kuṭṭaka-ganita or simply Kuṭṭaka. Sometimes the subject of
solving linear Diophantine equations is also called Kuṭṭaka.

In literature, there are several other names for the Kuṭṭaka algorithm like Kuṭṭa, Kuṭṭakāra and
Kuṭṭikāra. There is also a treatise devoted exclusively to a discussion of Kuṭṭaka. Such
specialized treatises are very rare in the mathematical literature of ancient India.[1] The
treatise written in Sanskrit is titled Kuṭṭākāra Śirōmaṇi and is authored by one Devaraja.[2]

The Kuṭṭaka algorithm has much similarity with and can be considered as a precursor of the
modern day extended Euclidean algorithm. The latter algorithm is a procedure for finding
integers x and y satisfying the condition ax + by = gcd(a, b).[3]

Aryabhaṭa's formulation of the problem

The problem that can supposedly be solved by the Kuṭṭaka method was not formulated by
Aryabhaṭa as a problem of solving the linear Diophantine equation. Aryabhaṭa considered the
following problems all of which are equivalent to the problem of solving the linear
Diophantine equation:

Find an integer which when divided by two given integers leaves two given remainders. This
problem may be formulated in two different ways:
Let the integer to be found be N, the divisors be a and b, and the remainders be R1 and
R2. Then the problem is to find N such that
N ≡ R1 (mod a) and N ≡ R2 (mod b).
Letting the integer to be found to be N, the divisors be a and b, and the remainders be R1
and R2, the problem is to find N such that there are integers x and y such that
N = ax + R1 and N = by + R2.
This is equivalent to
ax − by = c where c = R2 − R1.
Find an integer such that its product with a given integer being increased or decreased by
another given integer and then divided by a third integer leaves no remainder. Letting the
integer to be determined be x and the three integers be a, b and c, the problem is to find x
such that (ax ± b)/c is an integer y. This is equivalent to finding integers x and y such that
(ax ± b)/c = y.
This in turn is equivalent to the problem of finding integer solutions of ax ± by = ±c.

Reduction of the problem

Aryabhata and other Indian writers had noted the following property of linear Diophantine
equations: "The linear Diophantine equation ax + by = c has a solution if and only if gcd(a, b)
is a divisor of c." So the first stage in the pulverization process is to cancel out the common
factor gcd(a, b) from a, b and c, and obtain an equation with smaller coefficients in which the
coefficients of x and y are relatively prime.

For example, Bhāskara I observes: "The dividend and the divisor shall become prime to each
other, on being divided by the residue of their mutual division. The operation of the pulveriser
should be considered in relation to them."[1]

Aryabhata's algorithm
Aryabhata gave the algorithm for solving the linear Diophantine equation in verses 32–33 of
Ganitapada of Aryabhatiya.[1] Taking Bhāskara I's explanation of these verses also into
consideration, Bibhutibbhushan Datta has given the following translation of these verses:

Description of Kuttaka as given by Aryabhata in Aryabhatiya

"Divide the divisor corresponding to the greater remainder by the divisor corresponding to
the smaller remainder. The residue (and the divisor corresponding to the smaller
remainder) being mutually divided (until the remainder becomes zero), the last quotient
should be multiplied by an optional integer and then added (in case the number of
quotients of the mutual division is even) or subtracted (in case the number of quotients is
odd) by the difference of the remainders. (Place the other quotients of the mutual division
successively one below the other in a column; below them the result just obtained and
underneath it the optional integer.) Any number below (that is, the penultimate) is
multiplied by the one just above it and added by that just below it. Divide the last number
(obtained so doing repeatedly) by the divisor corresponding to the smaller remainder; then
multiply the residue by the divisor corresponding to the greater remainder and add the
greater remainder. (The result will be) the number corresponding to the two divisors."

Some comments are in order.

The algorithm yields the smallest positive integer which gives specified remainders when
divided by given numbers.

The validity of the algorithm can be established by translating the process into modern
mathematical notations.[1]

Subsequent Indian mathematicians including Brahmagupta (628 AD), Mahavira (850),


Aryabhata II (950), Sripati (1039), Bhāskara II (1150) and Narayana (1350) have developed
several variants of this algorithm and have also discussed several special cases of the
algorithm.[1]

Elaboration of Aryabhatta's Kuttaka


Without loss of generality, let ax-by=c be our Diophantine equation where a, b are positive
integers and c is an integer. Divide both sides of the equation by gcd(a,b). If c is not divisible
by gcd(a,b) then there are no integer solutions to this equation. After the division, we get the
equation a'x-b'y=c'. The solution to this equation is the solution to ax-by=c. Without loss of
generality, let us consider a > b.

Using Euclidean division, follow these recursive steps:


a' = a1b' + r1
b' = a2r1 + r2
r1 = a3r2 + r3

rn-2 = anrn-1 + 1. Where rn = 1.

Now, define quantities xx+2, xn+1, xn,.. by backward induction as follows:


If n is odd, take xn+2 = 0 and xn+1 = 1.
If n is even, take xn+2=1 and xn+1=rn-1-1.
Now,calculate all xm (n≥m≥1) by xm=amxm+1+xm+2. Then y = c'x1 and x = c'x2.

Example

Problem statement

Consider the following problem:

"Find an integer such that it leaves a remainder of 15 when divided by 29 and a remainder
of 19 when divided by 45."

Data

Remainders = 15, 19
Greater remainder = 19
Divisor corresponding to greater remainder = 45
Smaller remainder = 15
Divisor corresponding to smaller remainder = 29
Difference of remainders = 19 - 15 = 4

Step 1: Mutual divisions


Divide 45 by 29 to get quotient 1 and remainder 16: 29 ) 45
( 1
29
----
Divide 29 by 16 to get quotient 1 and remainder 13: 16
) 29 ( 1

16

----
Divide 16 by 13 to get quotient 1 and remainder 3:
13 ) 16 ( 1

13

----
Divide 13 by 3 to get quotient 4 and remainder 1:
3 ) 13 ( 4

----
Divide 3 by 1 to get quotient 3 and remainder 0:
1 ) 3 ( 3

----
The process of mutual division stops here.
0

Step 2: Choosing an optional integer

Quotients = 1, 1,
1, 4, 3
Number of quotients = 4
(an even integer)
(excluding the first quotient)
Choose an optional integer = 2
(= k)
The last quotient = 3
Multiply the optional integer by last quotient = 2 × 3 =
6
Add the above product to difference of remainders = 6 + 4 =
10 (= 3 × k + 4)

Step 4: Computation of successive numbers

Write elements of 1st column : 1, 1, 4, 3, 2, 4


(contains 4 quotients)
Compute elements of 2nd column : 1, 1, 4, 10, 2
(contains 3 quotients)
Compute elements of 3rd column : 1, 1, 42, 10
(contains 2 quotients)
Compute elements of 4th column : 1, 52, 42
(contains 1 quotient)
Compute elements of 5th column : 94, 52
(contains no quotients)

The computational procedure is shown below:

Quotient 1 : 1 1
1 1 94


Quotient 2 : 1 1
1 52 (52×1 + 42 = 94) 52


Quotient 3 : 4 4
42 (42×1 + 10 =52) 42

Quotient 4 : 3 10 (10×4 + 2 = 42)
10

k : 2 (2×3 + 4 = 10) 2
Difference : 4
of remainders

Step 5: Computation of solution

The last number obtained


= 94
The residue when 94 is divided by the divisor corresponding
to smaller remainder = 7
Multiply this residue by the divisor corresponding to
larger remainder = 7 × 45 = 315
Add the larger remainder
= 315 + 19 = 334

Solution

The required number is 334.

Verification of solution

334 = 11 × 29 + 15. So, 334 leaves a remainder of 15 when


divided by 29.
334 = 7 × 45 + 19. So, 334 leaves a remainder of 19 when
divided by 45.

Remarks

The number 334 is the smallest integer which leaves remainders 15 and 19 when divided by
29 and 45 respectively.

An example from Laghubhāskarīya

The following example taken from Laghubhāskarīya of Bhāskara I[4] illustrates how the
Kuttaka algorithm was used in the astronomical calculations in India.[5]

Problem statement
The sum, the difference and the product increased by unity, of the residues of the revolutions
of Saturn and Mars – each is a perfect square. Taking the equations furnished by the above
and applying the methods of such quadratics obtain the (simplest) solution by the
substitution of 2, 3, etc. successively (in the general solution). Then calculate the ahargana
and the revolutions performed by Saturn and Mars in that time together with the number of
solar years elapsed.

Some background information

In the Indian astronomical tradition, a Yuga is a period consisting of 1,577,917,500 civil days.
Saturn makes 146,564 revolutions and Mars makes 229,6824 revolutions in a Yuga. So
Saturn makes 146,564/1,577,917,500 = 36,641/394,479,375 revolutions in a day. By saying
that the residue of the revolution of Saturn is x, what is meant is that the fractional number of
revolutions is x/394,479,375. Similarly, Mars makes 229,6824/1,577,917,500 =
190,412/131,493,125 revolutions in a day. By saying that the residue of the revolution of Mars
is y, what is meant is that the fractional number of revolutions is y/131,493,125.

Computation of the residues

Let x and y denote the residues of the revolutions of Saturn and Mars respectively satisfying
the conditions stated in the problem. They must be such that each of x + y. x − y and xy + 1
is a perfect square.

Setting

x + y = 4p2, x − y = 4q2

one obtains

x = 2(p2 + q2), y = 2(p2 − q2)

and so

xy + 1 = (2p2 − 1)2 + 4(p2 − q4).

For xy + 1 also to be a perfect square we must have

p2 − q4 = 0, that is p2 = q4.

Thus the following general solution is obtained:

x = 2(q4 + q2), y = 2(q4 − q2).

The value q = 2 yields the special solution x = 40, y = 24.


Computations of the aharganas and the numbers of revolutions

Ahargana is the number of days elapsed since the beginning of the Yuga.

Saturn

Let u be the value of the ahargana corresponding the residue 24 for Saturn. During u days,
saturn would have completed (36,641/394,479,375)×u number of revolutions. Since there is a
residue of 24, this number would include the fractional number 24/394,479,375 of revolutions
also. Hence during the ahargana u, the number of revolutions completed would be

(36,641 / 394,479,375) × u − 24/394,479,375 = (36,641 × u − 24) / 394,479,375

which would be an integer. Denoting this integer by v, the problem reduces to solving the
following linear Diophantine equation:

(36,641 × u − 24) / 394,479,375 = v.

Kuttaka may be applied to solve this equation. The smallest solution is

u = 346,688,814 and v = 32,202.


Mars

Let u be the value of the ahargana corresponding the residue 40 for Mars. During u days,
Mars would have completed (190,412/131,493,125) × u number of revolutions. Since there is
a residue of 40, this number would include the fractional number 40/131,493,125 of
revolutions also. Hence during the ahargana u, the number of revolutions completed would
be

(190,412 / 131,493,125) × u − 40 / 131,493,125 = (190,412 × u − 40) / 131,493,125

which would be an integer. Denoting this integer by v, the problem reduces to solving the
following linear Diophantine equation:

(190,412 × u − 40) / 131,493,125 = v.

Kuttaka may be applied to solve this equation. The smallest solution is

u = 118,076,020 and v = 171,872.

References

1. Bibhutibhushan Datta and Avadhesh Narayan Singh (1962). History of Hindu Mathematics A source
Book Part II. Asia Publishing House. p. 92.
2. Devaraja (1944). Kuttakara Siromani (in Sanskrit) (https://archive.org/details/Anandashram_Samskrit
a_Granthavali_Anandashram_Sanskrit_Series) . Anandasrama Press. Retrieved 7 March 2016.

3. D. E. Knuth (1998). The Art of Computer Programming Volume 2. Pearson Education India, 1998.
p. 342. ISBN 9788177583359.

4. Bhaskaracharya-1 (Translated by K. S. Shukla) (1963). Laghu-Bhskariya (https://archive.org/details/L


aghuBhaskariya) . Lucknow University. p. 99 (https://archive.org/details/LaghuBhaskariya/page/n
171) . Retrieved 7 March 2016.

5. Avinash Sathaye. "A Better Division Algorithm" (http://www.ms.uky.edu/~sohum/ma330/files/aryabh


ata_alg_.pdf) (PDF). Department of mathematics, Univ. of Kentucky. Retrieved 7 March 2016.

Further reading

For a comparison of Indian and Chinese methods for solving linear diophantine equations:
A. K. Bag and K. S. Shen (1984). "Kuttaka and Qiuvishu" (https://web.archive.org/web/2015
0705221226/http://www.dli.gov.in/rawdataupload/upload/insa/INSA_1/20005abd_397.p
df) (PDF). Indian Journal of History of Science. 19 (4): 397–405. Archived from the original
(http://www.dli.gov.in/rawdataupload/upload/insa/INSA_1/20005abd_397.pdf) (PDF) on
5 July 2015. Retrieved 1 March 2016.

For a comparison of the complexity of the Aryabhata algorithm with the complexities of
Euclidean algorithm, Chinese remainder theorem and Garner's algorithm: T. R. N. Rao and
Chung-Huang Yang (2006). "Aryabhata Remainder Theorem: Relevance to Public Key
Crypto-systems" (http://crypto.nknu.edu.tw/publications/2006CSSP.pdf) (PDF). Circuits,
System, Signals Processing. 25 (1): 1–15. Retrieved 1 March 2016.

For a popular readable account of the Kuttaka: Amartya Kumar Dutta (October 2002).
"Mathematics in Ancient India 2. Diophantine Equations: The Kuttaka" (http://111.93.135.1
71/Volumes/07/10/0006-0022.pdf) (PDF). Resonance. 7 (10): 6–22. Retrieved 1 March
2016.

For an application of Kuttaka in computing full moon days: Robert Cooke. "Euclid's
Algorithm" (https://web.archive.org/web/20160615205452/http://www2.slgb.ch/users/le/
ph-sek/ecldalg.pdf) (PDF). Archived from the original (http://www2.slgb.ch/users/le/ph-s
ek/ecldalg.pdf) (PDF) on 15 June 2016. Retrieved 1 March 2016.

For a discussion of the computational aspects of Aryabhata algorithm: Subhash Kak


(1986). "Computational Aspects of Aryabhata Algorithm" (http://www.ece.lsu.edu/kak/Arya
bhataAlgorithm.pdf) (PDF). Indian Journal of History of Science. 21 (1): 62–71. Retrieved
1 March 2016.
For the interpretation of Aryabhata's original formulation of algorithm: Bibhutibhusan Datta
(1932). "Elder Aryabhata's Rule for the Solution of Indeterminate Equations of the First
Degree". Bulletin of Calcutta Mathematical Society. 24 (1): 19–36.

For a detailed exposition of the Kuttaka algorithm as given by Sankaranarayana in his


commentary on Laghubhaskariya: Bhaskaracharya-1 (Translated by K. S. Shukla) (1963).
Laghu-Bhskariya (https://archive.org/details/LaghuBhaskariya) . Lucknow University.
pp. 103 (https://archive.org/details/LaghuBhaskariya/page/n175) –114. Retrieved
7 March 2016.

Retrieved from
"https://en.wikipedia.org/w/index.php?
title=Kuṭṭaka&oldid=1112804267"

Last edited 27 days ago by LilianaUwU

You might also like