 GeeksforGeeks App
Open App Browser
Continue

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

 `// C++ program to find all the factors``// of a number using recursion` `#include ``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);``}`

## 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 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`

## 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)

Auxiliary Space: O(N)

My Personal Notes arrow_drop_up