Python 为什么没有运行结果

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运行时间,你的复杂度到达阈值程序就奔溃了,不会运行了