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. The treatise written in Sanskrit is titled Kuṭṭākāra Śirōmaṇi and is authored by one Devaraja. 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).
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."
Aryabhata's algorithm Aryabhata gave the algorithm for solving the linear Diophantine equation in verses 32–33 of Ganitapada of Aryabhatiya. Taking Bhāskara I's explanation of these verses also into consideration, Bibhutibbhushan Datta has given the following translation of these verses:
"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. 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.
… excerpt ends here. Continue reading the full article.

