n=eval(input())
for i in range(10**(n-1),10**n):
sumn=0
for j in range(n):
sumn+=eval(str(i)[j])**2
if sumn==i:
print(i)
最坏复杂度是n^2,但是你的range()代表你N值基数太大
不是没有运行结果,是因为下述代码需要用户输入。
n=eval(input())
你的时间复杂度太高了,输入数字从1-n呈指数增长
时间复杂度,就是你代码的运行速度,也就是你的函数在输入N之后运行开始到停止返回的速度快慢,
print(‘run1’) # 这样的是 O(1)的复杂度,
for i in range(n): # 这样是0(N)的复杂度
print(i)
for u in range(n) :
for r in range(u): # 这样是O(n*2)的复杂度
print(r)
依次往下推 n^2的复杂度已经是很慢了。算算CPU运行时间,你的复杂度到达阈值程序就奔溃了,不会运行了