Steady squares: Difference between revisions

Content added Content deleted
(Added Algol 60)
Line 58: Line 58:
begin comment find steady squares - numbers whose square ends in the number
begin comment find steady squares - numbers whose square ends in the number
e.g.: 376^2 = 141 376 ;
e.g.: 376^2 = 141 376 ;

comment checks wheher n^2 mod p10 = n, i.e. n is a steady square
displays it if it is ;
procedure possibleSteadySuare ( n, p10 ); value n, p10
; integer n, p10
;
begin
integer m, n2;
n2 := n * n;
m := n2 - ( ( n2 % p10 ) * p10 ) ;
if m = n then begin
outinteger( 1, n )
end
end possibleSteadySquare ;


integer powerOfTen, p;
integer powerOfTen, p;
Line 78: Line 64:
comment note the final digit must be 1, 5 or 6 ;
comment note the final digit must be 1, 5 or 6 ;
for p := 0 step 10 until 10 000 do begin
for p := 0 step 10 until 10 000 do begin
integer d;
if p = powerOfTen then begin
if p = powerOfTen then begin
comment number of digits have increased ;
comment number of digits has increased ;
powerOfTen := powerOfTen * 10
powerOfTen := powerOfTen * 10
end;
end;
possibleSteadySuare( p + 1, powerOfTen );
for d := 1, 5, 6 do begin
possibleSteadySuare( p + 5, powerOfTen );
integer m, n, n2;
possibleSteadySuare( p + 6, powerOfTen )
n := p + d;
n2 := n * n;
m := n2 - ( ( n2 % powerOfTen ) * powerOfTen ) ;
if m = n then outinteger( 1, n )
end
end
end
end
end