In [1]:
1
2
from collections import Counter
from functools import reduce

Prime Factors

Prime Factor

Prime factor is the factor of the given number which is a prime number.
Factors are the numbers you multiply together to get another number.
In simple words, prime factor is finding which prime numbers multiply together to make the original number.

In [16]:
1
2
3
4
5
6
7
8
9
10
11
12
13
def prime_factors(n):
    """ A function to print all prime factors of a given number n """
    i = 2
    factors = []
    while i * i <= n:
        if n % i:  # if there is a remainder.
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors

Find the number of divisors

If $10 = 2^2 \times 5^2$, the number of divisors as follows: $(2 + 1) \times (2 + 1) = 9$

In [22]:
1
2
3
4
5
def numOfDivs(n, verbose=False):
    primes =  Counter(prime_factors(n))
    if verbose: print(primes)
    cnts = list(map(lambda x : x + 1, primes.values()))
    return reduce(lambda x, y: x * y, cnts)
In [23]:
1
numOfDivs(100, verbose=True)
1
2
Counter({2: 2, 5: 2})

1
9

Leave a comment