# Program to find all Factors of a Number using recursion

• Difficulty Level : Basic
• Last Updated : 30 Jan, 2022

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
Recommended Articles
Page :