declare @num int
set @num=99
declare @n1 int--第一位数
declare @n2 int--第二位数
declare @n3 int--第三位数
declare @n int--N次方
declare @result int --次方相加的结果
set @n=3
while @num<=1000
begin
set @num=@num+1
set @n1=convert(int,substring(convert(varchar(10),@num),1,1))
set @n2=convert(int,substring(convert(varchar(10),@num),2,1))
set @n3=convert(int,substring(convert(varchar(10),@num),3,1))
set @result=power(@n1,@n)+power(@n2,@n)+power(@n3,@n)
if @result=@num
begin
print '结果'+convert(varchar(20),@result)+'['+convert(varchar(20),@num)+']'+'N:'+convert(varchar(20),@n)
end
end
现在我是把n设置成固定数值3做的,你再加一个循环就可以了