Sometimes, we want to find all the factors of a number in Python.
In this article, we’ll look at how to find all the factors of a number in Python.
How to find all the factors of a number in Python?
To find all the factors of a number in Python, we can use the functools
module.
For instance, we write:
from functools import reduce
def factors(n):
return set(
reduce(list.__add__, ([i, n // i]
for i in range(1,
int(n**0.5) + 1) if n % i == 0)))
print(factors(50))
We define the factors
function which takes the number n
to get the factors from.
In the function, we call reduce
with list.__add__
as the function to call to to add the factors into a list.
Then we compute the factors with ([i, n//i] for i in range(1, int(n**0.5) + 1) if n % i == 0)
to compute the factors by getting all the numbers i
that can divide n
evenly.
Finally, we call set
to remove the duplicates from the list
returned by reduce
.
Therefore, we should see {1, 2, 5, 10, 50, 25}
from the print
output.
Conclusion
To find all the factors of a number in Python, we can use the functools
module.