Не могу придумать, как оптимизировать программу по поиску делителей факториала числа
#кол-во делителей факториала
from math import factorial, comb
import numpy as np
import itertools
def factorization(n):
res = []
i = 2
while i*i <= n:
if n % i == 0:
res.append(i)
n//=i
else:
i+=1
if n > 1:
res.append(n)
return res
n = int(input())
lst = factorization(factorial(n))
s = set()
for i in range(1,len(lst)+1):
for x in itertools.combinations(lst, i):
s.add(np.prod(x)) #тут я очень неоригинально перемножаю кучу кортежей, тратя много времени
print(len(s)+1)