<?xml version="1.0" encoding="windows-1252"?>
<node id="89081" title="Re: (Golf) Kaprekar's Process" created="2001-06-16 19:00:09" updated="2005-08-14 18:45:38">
<type id="11">
note</type>
<author id="17251">
MeowChow</author>
<data>
<field name="doctext">
The answers given thus far all fail on numbers (such as 100 and 211) which generate two-digit numbers in their intermediate results. Here's a good test for this particular golf:
&lt;code&gt;
$| = 1;
for (100..999) {
  next if /(.)\1\1/;
  print "$_ : ", k($_), $/;
}
&lt;/code&gt;
And here's a correct solution at &lt;strike&gt;74&lt;/strike&gt; &lt;strike&gt;68&lt;/strike&gt; &lt;b&gt;63&lt;/b&gt; chars:
&lt;code&gt;
sub k {
  $_=sprintf"%03d",pop;/495/?0:1+k(-($_=join'',sort/./g)+reverse)
}
&lt;/code&gt;
&lt;pre&gt;
  &lt;a href="/index.pl?node=MeowChow"&gt; MeowChow                                   &lt;/a&gt;
               s aamecha.s a..a\u$&amp;owag.print&lt;/pre&gt;</field>
<field name="root_node">
89075</field>
<field name="parent_node">
89075</field>
</data>
</node>
