# [seqfan] Re: Kaprekar Triples

Jack Brennen jfb at brennen.net
Wed Aug 23 19:20:32 CEST 2017

```C program (starts with 3 digit numbers, should be good until you get
64-bit unsigned integer overflows):

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
uint64_t DELTA[3];
uint64_t D[3];
uint64_t Q[2];
uint64_t I,J,BASE,CARRY;

// DELTA is the difference between I^3 and (I+1)^3,
//  expressed as three digits of base B.
// Note that it's equal to 3*I^2+3*I+1,
//  and that it increments each time by 6*I+6.

for (J=100, BASE=1000; ; J*=10, BASE*=10) {
D[0] = 0;
D[1] = 0;
D[2] = BASE/1000;
DELTA[0] = 3*J+1;
DELTA[1] = (3*J)/10;
DELTA[2] = 0;
Q[0] = 6*J+6;
Q[1] = 0;
for (I=J+1; I<BASE; I++) {
D[0] += DELTA[0]; if (D[0] >= BASE) { D[0] -= BASE; CARRY=1; }
else { CARRY=0; }
D[1] += DELTA[1]+CARRY; if (D[1] >= BASE) { D[1] -= BASE;
CARRY=1; } else { CARRY=0; }
D[2] += DELTA[2]+CARRY;
if (D[2]+D[1]+D[0] == I) {
printf("%llu, ", (unsigned long long)I);
fflush(stdout);
}
DELTA[0] += Q[0]; if (DELTA[0] >= BASE) { DELTA[0] -= BASE;
CARRY=1; } else { CARRY=0; }
DELTA[1] += Q[1]+CARRY; if (DELTA[1] >= BASE) { DELTA[1] -=
BASE; CARRY=1; } else { CARRY=0; }
DELTA[2] += CARRY;
Q[0] += 6; if (Q[0] >= BASE) { Q[0] -= BASE; Q[1] += 1; }
}
}
}

Output from the first few minutes of running the program:

297, 2322, 2728, 4445, 4544, 4949, 5049, 5455, 5554, 7172, 27100, 44443,
55556, 60434, 77778, 143857, 208494, 226071, 279720, 313390, 324675,
329967, 346060, 368928, 395604, 422577, 427868, 461539, 472823, 478115,
488214, 494208, 495208, 499500, 500500, 517076, 533170, 543752, 559846,
565137, 598807, 664741, 670032, 720279, 757835, 791505, 807598, 825175,
829466, 856142, 966329, 973323, 4444443, 4927940, 5072058, 5555555,
5555556, 5699673, 6183170, 8888887, 11273318, 13793570, 17090613,
21803275, 22293325, 24752475, 25242525, 25252524, 27272728, 27282727,
28201724, 30731977, 33404436, 36363635, 38383839, 38546045, 38883889,
39046095, 39546145, 41843088, 44025497, 44363340, 44525547, 45025597,
47045800, 49842793, 49995000, 50005000, 50657256, 55474451, 55474452,
55484452, 56136708, 58156911, 58656961, 60453854, 61453954, 63636364,
63798570, 64298620, 66747770, 69278022, 69768072, 69778072, 72227222,
72717272, 72727271, 74747475, 74909681, 75409731, 77706674, 77767777,
77777776, 80726976, 80726977, 80889183, 88878888, 88888888, 93868290,
197864531, 332999667, 667000332, 765432098, 1111111110, 1153093348,
1355013550, 1396995787, 2020202019, 2020202020, 2112639308, 2306086696,
2685390489, 2887410691, 2979847980, 3131313130, 3181768182, 3265632656,
3467652858, 3645036449, 3846956651, 3888938889, 4132741328, 4174723565,
4292879293, 4756047560, 4798029798, 4958067762, 4999950000, 5000050000,
5041932236, 5243952438, 5243952439, 5445872641, 5487854878, 5623256232,
5707120706, 5867258671, 5909040908, 5909140908, 5909140909, 6111061110,
6111161110, 6153043348, 6355063549, 6574329378, 6776249580, 7020252019,
7070707071, 7222172221, 7264154458, 7356491747, 7558511949, 7643458252,
7685440489, 7777777778, 7777877777, 8021680217, 8173245367, 8669623060,
8888888889, 9174773564, 9512095121, 9512195120, 9755997560, 9839962034,
24138656648, 31416898906, 44444444445,

On 8/23/2017 9:02 AM, Hans Havermann wrote:
> https://oeis.org/A006887
>
> On Monday, Futility Closet's "Math Notes" showcased five terms of this sequence:
>
> https://www.futilitycloset.com/2017/08/21/math-notes-116/
>
> The OEIS's 35 given terms date to 2003. A lot of computational power has evolved since. Perhaps someone can provide "more". A program also would be nice.
>
> --
> Seqfan Mailing list - http://list.seqfan.eu/
>
>
>

```