Program to find all Factors of a Number using recursion

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find all the factors
// of a number using recursion
  
#include <bits/stdc++.h>
using namespace std;
  
// Recursive function to
// print factors of a number
void 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 code
int main()
{
    int N = 16;
    factors(N, 1);
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to find all the factors
# of a number using recursion
  
# Recursive function to
# prfactors of a number
def 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 code
if __name__ == '__main__':
    N = 16;
    factors(N, 1);
  
# This code is contributed by Rajput-Ji

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


Output:

1 2 4 8 16

Time Complexity: O(N)

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : Rajput-Ji