Python program to find factors of a number

Find factors of a number in python :

In this tutorial, we will learn how to find the factors of a number in python. The program will ask the user to enter a number. It will then print out the factors for that number. For example, if the number is 12, it will print 1,2,3,4,6,12 as the output.

Algorithm to use :

The following algorithm we will use to solve this problem :

  1. Ask the user to enter a number. Read it, and store it in a variable.

  2. Using one loop, check for all numbers if it is a divisor or not starting from 1 to the user-provided number.

  3. If any number is a divisor, print out the number.

  4. Exit the program.

As you can see, we will use one loop to print out the factors of a number. We will show you to solve this problem by using a for loop and while loop. Both approaches will give the same output.

Python program to find factors of a number using for loop :

Let’s try to find out the factors using a for loop :

#1
def print_factors(n):
    #2
    for i in range(1, n+1):
        #3
        if n % i == 0:
            print(i)

#4
number = int(input("Enter a number : "))

#5
print("The factors for {} are : ".format(number))
print_factors(number)

python find factors of a number using for loop

Explanation :

The commented numbers in the above program denote the step numbers below:

  1. Create one method print_factors to find out all factors of a number. This function takes one integer value as a parameter.

  2. Using one for loop, iterate over the numbers from 1 to n.

  3. Check for each number in the loop if it is a divisor of the given number or not. If yes, print out the number.

  4. This is the actual start point of the program. Ask the user to enter a number. Read the input value as an integer and store it in variable number.

  5. Print out the factors for that number using the print_factors method.

Sample output :

Enter a number : 12
The factors for 12 are :
1
2
3
4
6
12

Enter a number : 20
The factors for 20 are :
1
2
4
5
10
20

python find factors of a number for loop example

Python program to find factors of a number using while loop :

Now, let’s try to find out the factors using a while loop :

def print_factors(n):
    i = 1
    while(i < n+1):
        if n % i == 0:
            print(i)
        i = i + 1

number = int(input("Enter a number : "))

print("The factors for {} are : ".format(number))
print_factors(number)

python find factors number using while loop

Explanation :

As you can see, only the print_factors method is different from this approach.

  1. Initialize one variable i as 1 at the start of this method.

  2. Using one while loop, iterate till i is less than n+1.

  3. Check if the current value is a divisor of n or not. If yes, print out the value.

  4. Increment the value of i.

Output :

Enter a number : 21
The factors for 21 are :
1
3
7
21

Enter a number : 15
The factors for 15 are :
1
3
5
15

The above example programs are available on Github.

Conclusion :

As you can see that using a for loop or while loop, we can find out the factors of a number. Try to run both programs and drop one comment below if you have any queries.

Similar tutorials :