for a in range(1,10):
    for b in range(0,10):
        for c in range(0,10):
            for d in range(0,10):
                for e in range(0,10):
                    if a*(b*1000+c*100+d*10+e)+(a*10+b)*(c*100+d*10+e)+(a*100+b*10+c)*(d*10+e)+(a*1000+b*100+c*10+d)*e==a*10000+b*1000+c*100+d*10+e:
                        print(a*10000+b*1000+c*100+d*10+e,end=" ")
  • 一开始想到了 是否切片可以做,但是没有动太多脑筋。凭着最耿直的最笨的方法先写出来了哈哈哈。
  • 果然大神里有用切片的——不禁感慨切片真是好用啊!
  • 我自己也再写一下。
  • 下面的方法真是妙啊,str把整数强制转换为字符型,然后做切片和做数值比较就方便很多。
for i in range(10000,100000):
    str_i=str(i)
    sum=0
    for j in range(1,5):   #要在中间取4次
        sum=sum+int(str_i[:j])*int(str_i[j:])
        
    if sum==i:
        print(sum,end=" ")