function MyFunc(r:real; n:integer):integer;
var i:integer;
begin
if n<=1 then
Result:=1+2*trunc(r)
else begin
Result:=MyFunc(r,n-1);
for i:=1 to trunc(r) do Result:=Result+2*MyFunc(sqrt(sqr(r)-sqr(i)),n-1);
end;
end;
Насчёт второй задачи - это надо полный перебор делать.