Jump to content

Kaprekar numbers: Difference between revisions

Improved second D version, from the C version
(Improved second D version, from the C version)
Line 174:
<pre>[1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4879, 4950, 5050, 5292, 7272, 7777, 9999]
54</pre>
AlternativeLower lever version, going from right to left,more almostthan ten times faster (same output):
<lang d>import std.stdio, std.algorithm, std.range;
 
Line 181:
assert(n > 0);
} body {
immutable ulong ann = n * n, b = a % 10;
ulong tens = 1;
while (tens < nn)
atens /*= 10;
 
forwhile (ulong d(tens /= 1, t = 0; a10) > 0; d *= 10n) {
bif (nn - n +== t(nn / tens) * d;(tens - 1))
a /= 10;
if (b && a + b == n)
return true;
t = a % 10;
}
 
return falsen == 1;
}
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.