from time import time
start=time()
result=0
fact={0:1}
for j in range(1,10):
x=j
tot=1
while x>1:
tot=tot*x
x-=1
fact[j]=tot
print(fact)
for i in range(3,2999999):
tot=0
n6=int(i/1000000)
n5=int((i-n6*1000000)/100000)
n4=int((i-n6*1000000-n5*100000)/10000)
n3=int((i-n6*1000000-n5*100000-n4*10000)/1000)
n2=int((i-n6*1000000-n5*100000-n4*10000-n3*1000)/100)
n1=int((i-n6*1000000-n5*100000-n4*10000-n3*1000-n2*100)/10)
n0=i-n6*1000000-n5*100000-n4*10000-n3*1000-n2*100-n1*10
if i>1000000 and i==fact[n6]+fact[n5]+fact[n4]+fact[n3]+fact[n2]+fact[n1]+fact[n0]:
result+=i
elif 1000000>i>100000 and i==fact[n5]+fact[n4]+fact[n3]+fact[n2]+fact[n1]+fact[n0]:
result+=i
elif 100000>i>10000 and i==fact[n4]+fact[n3]+fact[n2]+fact[n1]+fact[n0]:
result+=i
elif 10000>i>1000 and i==fact[n3]+fact[n2]+fact[n1]+fact[n0]:
result+=i
elif 1000>i>100 and i==fact[n2]+fact[n1]+fact[n0]:
result+=i
elif 100>i>10 and i==fact[n1]+fact[n0]:
result+=i
elif i<10 and i==fact[n0]:
result+=i
print(result)
print(time()-start)
>>>
{0: 1, 1: 1, 2: 2, 3: 6, 4: 24, 5: 120, 6: 720, 7: 5040, 8: 40320, 9: 362880}
40730
171.1605212688446
|