Talk:Steady squares

Revision as of 09:50, 21 December 2021 by rosettacode>Horst.h (→‎Reduce search range by observation of the results: new section)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Reduce search range by observation of the results

By taking a look at the results,I tried to search for results by prepending a digit to n.
And there comes the solution:By prepending a digit to n, than n*n must end in n to be a steady square.
So only solutions of one digit before can be solutions. <lang pascal> function CalcSquare(n:LongInt;Pot10:byte); //pot10 is 10^(count of digits of n) //prepend one digit to n var

 dgt: LongInt;

begin

   //ex.: n= 5,Pot10 = 1, dgt= 2;-> n2= (2*10*1+5)^2 = 625
 For dgt := 1 to 9 do
 begin
   // n= 5 , dgt= 2*10 -> n2= 625
   n2 = sqr(dgt*10*Pot10+n);   
   n2 = dgt*dgt*100*Pot10*Pot10+2*dgt*10*pot10*n+n*n;

// term: dgt*dgt*100*Pot10*Pot10+2*dgt*10*pot10*n// always has ends in Pot10+1 "0" digits // so n*n must end in n, to be a steady square

 end;

</lang>

Return to "Steady squares" page.