## Task
Given a positive integer, `n`, return the number of possible ways such that `k` positive integers multiply to `n`. Order matters.
**Examples**
```
n = 24
k = 2
(1, 24), (2, 12), (3, 8), (4, 6), (6, 4), (8, 3), (12, 2), (24, 1) -> 8
n = 100
k = 1
100 -> 1
n = 20
k = 3
(1, 1, 20), (1, 2, 10), (1, 4, 5), (1, 5, 4), (1, 10, 2), (1, 20, 1),
(2, 1, 10), (2, 2, 5), (2, 5, 2), (2, 10, 1), (4, 1, 5), (4, 5, 1),
(5, 1, 4), (5, 2, 2), (5, 4, 1), (10, 1, 2), (10, 2, 1), (20, 1, 1) -> 18
```
**Constraints**
`1 <= n <= 500_000_000`
and `1 <= k <= 1000`
from math import sqrt,factorial
def c(n,m):
        return factorial(n)//(factorial(n-m)*factorial(m))

def factor(n):#Amount of prime numbers
        factors={}
        max=int(sqrt(n)+1)
        f=2
        while f<=max:
            if n%f==0:
                factors[f]=0
                while n%f==0:
                    factors[f]+=1
                    n//=f
                max=int(sqrt(n)+1)
            f+=1
        if n!=1:
            factors[n]=1
        return factors
    
def multiply(n, k):
    mul=1
    for m in factor(n).values():
        mul*=c(m+k-1,k-1)
    return mul
from math import sqrt,factorial
def c(n,m):
        return factorial(n)//(factorial(n-m)*factorial(m))

def factor(n):#Amount of prime numbers
        factors={}
        max=int(sqrt(n)+1)
        f=2
        while f<=max:
            if n%f==0:
                factors[f]=0
                while n%f==0:
                    factors[f]+=1
                    n//=f
                max=int(sqrt(n)+1)
            f+=1
        if n!=1:
            factors[n]=1
        return factors
    
def multiply(n, k):
    mul=1
    for m in factor(n).values():
        mul*=c(m+k-1,k-1)
    return mul