# Some remarks on Complements

Following Sudipta Das (see the Ed Pegg's page at mathpuzzle.com/) we define the n-complement of a number j as the number k such that corresponding digits of j and k always add to n. We want to investigate some properties of the n-complements in two special cases for the terms j, k:
• the square-case, say j=x2 and k=y2 for some x, y;
• the triangular-case, say j=x*(x+1)/2, k=y*(y+1)/2 for some x, y.
Let us sketch an idea that apply to the general problem (not only to our two cases). Forbidding initial zeros on the representation of our numbers, we assume that j, k have the same numbers of digits, say d; then we must have:
Main Formula: j+k=n*S where S=111...1 is composed by d times the digit 1.
Of course carries could appear in the sum j+k, thus solutions of the new problem could fail to solve the original one; but for the new formulation many interesting properties will be quite immediate.

## Square-Complements

### Some trivial cases

Of course any choice of x, y between 0 and 3 will give rise to a solution corresponding to a suitable n; thus we get trivial solutions for 10 values of n = x2+ y2 say (choosing x £  y and sorting the results with respect to n):

 x 0 0 1 2 1 2 3 1 2 3 y 0 1 1 2 2 2 3 3 3 3 n 0 1 2 4 5 8 9 10 13 18

Of course we could do the same work concerning the two-digit-cases (say: x, y both between 4 and 9), but it would be a quite tedious work, and a better idea could be to ask the computer to do that. In fact, as we will show in a moment, we would waste our time: no two-digits solution can exist.

### A little bit of theory can save a lot of time...

Let us start from the "main formula" (in our case, say with j=x2, k=y2) and remark that, once d has been fixed, we can easely find some factors of the part S (the parts "thus n*S has the factor..." will be explained in a moment):
• if d is even, the number S has the factor 11 (thus n*S has the factor 11*11 for n other than 11);
• if d is a multiple of 3, the number S has the factor 3 (thus n*S has the factor 3*3 if 3 does not divide n);
• if d is a multiple of 5, the number S has the factor 271 (thus n*S has the factor 271*271);
• if d is a multiple of 6, the number S has the factor 7 (thus n*S has the factor7*7 if 7 does not divide n);
• if d is a multiple of 7, the number S has the factor 239 (thus n*S has the factor 239*239);
• if d is a multiple of 13, the number S has the factor 79 (thus n*S has the factor 79*79);
• ....

Let us explain the special role played by the numbers 11, 3, 271, 7, 239, 79. In general there is no relationship between the factors of x, y and the factors of x2+ y2 (consider e.g. the example 72+52 = 74 = 2*37); however in some cases a very strong connection exists: special factors of the sum must divide both x, y; so that also the square of the factor divides the sum. This happens in particular for each one of the values 11, 3, 271, 7, 239, 79; of course, with respect to the representation given in the main formula, some terms could divide n instead of the string of ones.

For other values of the factor f the result can fail; e.g. when f=13, as shown by the example 22+ 32=13.
The proof in the case f=3 is quite immediate: we fix x=3*u+j, y=3*v+k (with j, k = 0, 1, 2) thus, for the sum of squares, we have x2+ y2 = 9*(u2+ v2)+ 6*(u*j+v*k)+ j2+ k2; then the sum can be a multiple of 3 only if j2+ k2 is a multiple of 3; and this can happen only if both j, k vanish.
The general case will require to check if, with respect to the modular operations in Z/(fZ) no sum of squares can vanish. Of course this could be done through a computer-program; for factors "not too big" already JavaScript can be used to investigate this problem; Netscape users can try by clicking ; on other browsers a faster version running with bigger numbers is given .
Let us summarize the consequences of our theory: also by using a Computer search, we must fix a reasonnable bound on the number of digits; e.g. working with numbers having at most 15 digits, we can confine our search to the cases:
• n multiple of 3, the number of digits being 3, 9;
• the case d=3 implies x, y multiples of 3, between 3*4 and 3*10; the unique couple is
(3*5)2+ (3*7)2=225+441=666
;
• the case d=9 implies x, y multiples of 9, between 9*1111 and 9*10540; a fast computer search shows that there exists no solution in this range.
• n=11, the number of digits being 2, 4, 8. The numbers x, y must have the factor 11, thus
• the case d=2 does need be treated;
• the case d=4 implies x, y between 11*3 and 11*9; no solutions;
• the case d=8
• implies x, y between 11*288 and 11*909; a brute-force computer-search ( ) finds in a short time the original couple found from Sudipta Das:
63142+ 90752=39866596+82355625
as well as a second fake couple, satisfying the "main formula" but not the real problem.

### ... But a more complete theory can give better results.

A computer search in the framework of a numbers with more than 15 digits could require a lot of time. Later on, in the framework of triangular-complements, we will show another argument of modular arythmetic that could shorten the task; but, concerning the case of square-complements, following Luke T. Pebody we can stop here our search: other solutions (if any) are out of reach, because they must be with n=11, d=2h with an exponent h>10.

## Triangular-Complements

Now let us consider the problem:
Tria(x)+Tria(y)=n*S (S=111...1, d digits 1)
where the notation Tria(z) is a shorthand for z*(z+1)/2 (again, as for the square-case, we start without take into account possible carries).
At least for small values of d we could try a computer-search based on a "brute force" approach: for any x, y between 1 and some Max, we check if the value of Tria(x)+Tria(y) has the wanted form n*111...1.
A faster method could be based on the following idea: for any x in the given range, we check if the quantity [(n*111...1)-Tria(x)] is a triangular number. This requires to check if a second degree equation has integer solutions, thus we need to extract a square root; it is a lengthy operation, but the task is no doubt shorter than the cycle in y.
Modular arithmetic can help to further accelerate our program: we do not need to check for all values of x, because we can exclude "a priori" some of the values. E.g, let us consider the case of n=3; we claim that numbers x of the form 3*h+1 can not give rise to solutions. Denoting by "%3" the reminder modulo 3, from the equation Tria(x)+Tria(y)=3*111...1 we get that Tria(x%3)+Tria(y%3) must be a multiple of 3; we only need to look at the values Tria(z) for z=0, 1, 2; and from Tria(0)=Tria(2)=0, Tria(1)=1 we conclude that the remainder 1 is forbidden.
The case of n=5 can be treated in a similar way: the values of Tria(x) for x=0, 1, 2, 3, 4 are given by 0, 1, 3, 1, 0; thus we can now work only with number x of the form 5*h, 5*h+4. On the other hand we can use the "length" d of S: if we ask for n=3, d=5 (or conversely: n=5, d=3) we can mix the results, checking only the values x of the form 15*h, 15*h+4.

Based on these ideas, I wrote a JavaScript program that treates the case n=9 for numbers up to 15 digits; its speed competes very well the speed of brute-force-approaches written in faster languages. Taking into account that:

• solutions with many digits require some time,
• some browsers fail when working with 15 digits,
do the following:
1. Fix the maximum number of digits
2. Choose between or leading 0s.