1. Современный вариант
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
var pow3:integer->integer:=n->n*n*n;
var Good:integer->boolean:=n->(pow3(n div 100)+
pow3((n div 10) mod 10)+pow3(n mod 10))=n;
Range(100,999).Where(x->Good(x)).Print
end.
Результат:
153 370 371 407
2. Школьный вариант
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
var
i,n,d100,d10,d1:integer;
begin
for i:=100 to 999 do begin
d100:=i div 100;
d10:=(i div 10) mod 10;
d1:=i mod 10;
if d100*sqr(d100)+d10*sqr(d10)+d1*sqr(d1)=i then
Write(i,' ')
end;
end.