// PascalABC.NET 3.3, сборка 1540 от 16.09.2017 // Внимание! Если программа не работает, обновите версию!
begin var n,p:integer; var s:string; for var a:=1 to 9 do for var b:=0 to 9 do for var c:=0 to 9 do begin n:=100*a+10*b+c; s:=(n*n).ToString.Right(3); p:=Pos(a.ToString,s); if p>0 then begin Delete(s,p,1); p:=Pos(b.ToString,s); if p>0 then begin Delete(s,p,1); if s=c.ToString then Write(n,'(',n*n,')',' ') end end end end.
Результат 205(42025) 376(141376) 421(177241) 625(390625) 963(927369)
begin Write('Введите верхнюю границу для счета: '); Readln(k); for i := 1 to k do begin n := i; repeat d := n mod 10; if d > 0 then flag := ((i mod d) <> 0) else flag := true; if (not flag) then n := (n div 10) until (flag or (n = 0)); if n = 0 then Write(i, ' ') end; Writeln end.