Program to find all Factors of a Number using recursion

• Difficulty Level : Basic
• Last Updated : 06 Apr, 2021

Given a number N, the task is to print all the factors of N using recursion.
Examples:

Input: N = 16
Output: 1 2 4 8 16
Explanation:
1, 2, 4, 8, 16 are the factors of 16. A factor is a number which divides the number completely.
Input: N = 8
Output: 1 2 4 8

Approach: The idea is to create a function that takes 2 arguments. The function is recursively called from 1 to N and in every call, if the number is a factor of N, then it is printed. The recursion will stop when the number exceeds N.
Below is the implementation of the above approach:

C++

 // C++ program to find all the factors// of a number using recursion #include using namespace std; // Recursive function to// print factors of a numbervoid factors(int n, int i){    // Checking if the number is less than N    if (i <= n) {        if (n % i == 0) {            cout << i << " ";        }         // Calling the function recursively        // for the next number        factors(n, i + 1);    }} // Driver codeint main(){    int N = 16;    factors(N, 1);}

Java

 // Java program to find all the factors// of a number using recursion class GFG {     // Recursive function to    // print factors of a number    static void factors(int n, int i)    {         // Checking if the number is less than N        if (i <= n) {            if (n % i == 0) {                System.out.print(i + " ");            }             // Calling the function recursively            // for the next number            factors(n, i + 1);        }    }    // Driver code    public static void main(String args[])    {        int N = 16;        factors(N, 1);    }}

Python3

 # Python3 program to find all the factors# of a number using recursion # Recursive function to# prfactors of a numberdef factors(n, i):     # Checking if the number is less than N    if (i <= n):        if (n % i == 0):            print(i, end = " ");                 # Calling the function recursively        # for the next number        factors(n, i + 1);     # Driver codeif __name__ == '__main__':    N = 16;    factors(N, 1); # This code is contributed by Rajput-Ji

C#

 // C# program to find all the factors// of a number using recursion using System; class GFG {     // Recursive function to    // print factors of a number    static void factors(int n, int i)    {         // Checking if the number is less than N        if (i <= n) {            if (n % i == 0) {                Console.WriteLine(i + " ");            }             // Calling the function recursively            // for the next number            factors(n, i + 1);        }    }     // Driver code    public static void Main()    {        int n = 16;        factors(n, 1);    }}

Javascript


Output:
1 2 4 8 16

Time Complexity: O(N)

My Personal Notes arrow_drop_up