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

Input:N = 16Output:1 2 4 8 16Explanation:

1, 2, 4, 8, 16 are the factors of 16. A factor is a number which divides the number completely.Input:N = 8Output: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 <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);` `}` |

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

`<script>` `// Javascript program to find all the factors` `// of a number using recursion` `// Recursive function to` `// print factors of a number` `function` `factors(n, i)` `{` ` ` `// Checking if the number is less than N` ` ` `if` `(i <= n) {` ` ` `if` `(n % i == 0) {` ` ` `document.write(i + ` `" "` `);` ` ` `}` ` ` `// Calling the function recursively` ` ` `// for the next number` ` ` `factors(n, i + 1);` ` ` `}` `}` `// Driver code` `var` `N = 16;` `factors(N, 1);` `</script>` |

**Output:**

1 2 4 8 16

**Time Complexity:** O(N)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**