Bueno, aquí va otro pasatiempo matemático ...
Escoge cuatro dígitos al azar (que no sean los cuatro iguales), y forma con ellos el mayor numero posible y el menor numero posible. Ahora al mayor restale el menor. Con los dígitos del numero resultante de la resta vuelve a repetir la operación.
Por ejemplo:
Código:
Las cifras -> 1,2,3,4
El numero mayor -> 4321
El numero menor -> 1234
La resta -> 4231 - 1234 = 3087
Las cifras -> 3,0,8,7
El numero mayor -> 8730
El numero menor -> 0378
La resta -> 8730 - 0378 = 8352
{Repite la operacion unas cuantas veces, 4 o 5 veces sera sufciente}
Ahora deja que me concentre

........ ya puedo verlo, el resultado es:
6174
Bien, después de la tontería, la explicación

. A la operación anterior se le llama "
Operacion de Kaprekar", y para cuatro dígitos el único numero que se mantiene igual después de aplicarle la operación es el 6174, uno de esos números misteriosos. Es mas, si se realiza esta operación el numero suficiente de veces sobre cualquier numero, siempre termina dando como resultado el número misterioso. Si alguien quiere saber el por que, en el enlace anterior lo explican con un sistema de 4 ecuaciones, para el que la única solución entera es el famoso 6174
Pero como siempre digo, delphi vale para cualquier cosa, así que ahí va un poco de código para la demostración empírica:
Código Delphi
[-]
function Kaprekar(n: integer): integer;
var
Str: string;
i,j: integer;
c: char;
begin
Str:= Format('%.4d',[n]);
for i:= 1 to Length(Str) do
for j:= Length(Str) downto i + 1 do
if Str[i] < Str[j] then
begin
c:= Str[i];
Str[i]:= Str[j];
Str[j]:= c;
end;
Result:= StrToInt(Str);
j:= Length(Str);
for i:= 1 to Length(Str) div 2 do
begin
c:= Str[i];
Str[i]:= Str[j];
Str[j]:= c;
dec(j);
end;
Result:= Result - StrToInt(Str);
end;
ShowMessage(IntToStr(Kaprekar(1234)));
Ahora vamos a por la serie:
Código Delphi
[-]
function SerieKaprekar(n: integer): string;
var
i: Integer;
begin
Result:= EmptyStr;
if (n > 9999) or (n < 0) then
Exit;
repeat
Result:= Result + Format('%.4d',[n]) + #13#10;
i:= n;
n:= Kaprekar(n);
until n=i;
end;
ShowMessage(SerieKaprekar(1234));
Podéis hacer pruebas con cualquier número de cuatro cifras (siempre que las cuatro no sean iguales) y vereis que la serie siempre termina en el numero 6174, el numero misterioso
Si, lo se, es una tontada ...
