Hola Aleix47.
Esta es una forma de hacerlo:
Código Delphi
[-]
procedure TForm1.HallarNumeros(const Desde, Hasta: Integer; TS:TStrings);
var
i,Lar: Integer;
n1,n2,n3: Integer;
begin
for i:= Desde to Hasta do
begin
Lar:= (Trunc(Ln(i)/Ln(10))+1) div 2; n1:= i div Trunc(Exp(Ln(10)*Lar)); n2:= i mod Trunc(Exp(Ln(10)*Lar)); n3:= Trunc(Exp(Ln(n1+n2)*2)); if n3 = i then TS.Add(format('%d: %d+%d => (%d)^2 = %d',[i,n1,n2,n1+n2,n3]));
end;
end;
Ejemplo de llamada:
Código Delphi
[-]
HallarNumeros(1,1000000,ListBox1.Items);
Documente que es lo que hace cada línea para que puedas analizar el código y te sirva como base para ejercicios del mismo tipo que tuvieras que resolver. Creo que te va a ser de utilidad ya que muestra como obtener el número de dígitos, potencia y algunos detalles más.
Cualquier duda que tengas sobre el funcionamiento, encantado trato de aclarartela.
Pero como te ha dicho
oscarac arriba, el próximo mensaje tratá de tener algo preparado y plantea una duda en concreto. No siempre nos vas a encontrar
con con ganas de resolver ejercicios...
Saludos.