Nie wiem, czy to jest dobrze rozwiązane, ale ja to zrobiłem w ten sposób:
def sil(num):
base = int()
for i in range(num + 1):
if i == 0:
base = 1
continue
base *= i
return base
def check(num):
num = num.strip()
int_num = int(num)
num = list(num)
res = int()
for single_num in num:
res += sil(int(single_num))
if res == int_num:
return res
else:
return False
file = open('liczby.txt', 'r')
arr = file.readlines()
result = list()
for val in arr:
valid = check(val)
if(valid):
result.append(valid)
print(result)