# Python Program – Find All Factors of a Given Number

Contents

## Find All Factors of a Given Number

In this program, we take a number in n, and find all the factors of this number.

n where n>0

## Program

We write findFactors() function that takes n as parameter, and returns a list of all the factors for given number.

Python Program

``````def findFactors(n):
factors = []

for i in range(1,n+1):
#check if i is a factor
if n % i == 0:
factors.append(i)

return factors

n = 10
result = findFactors(n)
print(result)``````
Run Code Copy

Output #1

``[1, 2, 5, 10]``

Output #2

``````Enter n : 512
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]``````

### Program for Efficiency

We can make the above program more efficient. How? If i is a factor of n, then n/i is also a factor. We can take advantage of this and limit our iterations to n/i instead of n.

Python Program

``````def findFactors(n):
factors = []

i = 1
while i < (n / i):
#check if i is a factor
if n % i == 0:
factors.append(i)
#if i is a factor, then n/i is also a factor
factors.append(int(n/i))
i += 1

factors.sort()
return factors

n = 10
result = findFactors(n)
print(result)``````
Run Code Copy

Output

``[1, 2, 5, 10]``

## Summary

In this tutorial of Python General Programs, you learned how to find all the factors of a given number.

## Related Tutorials

Code copied to clipboard successfully 👍