Given an integer **N** which denotes the number of divisors of any number, the task is to find the maximum prime divisors that are possible in number having N divisors.

**Examples:**

Input:N = 4

Output:2

Input:N = 8

Output:3

**Approach:** The idea is to find the prime factorization of the number N, then the sum of the powers of the prime divisors is the maximum possible prime divisors of a number can have with N divisors.

**For Example:**

Let the number of divisors of number be 4, Then the possible numbers can be 6, 10, 15,... Divisors of 6 = 1, 2, 3, 6 Total number of prime-divisors = 2 (2, 3) Prime Factorization of 4 = 2^{2}Sum of powers of prime factors = 2

Below is the implementation of the above approach:

## C++

`// C++ implementation to find the ` `// maximum possible prime divisor ` `// of a number can have N divisors ` ` ` `#include <iostream> ` ` ` `using` `namespace` `std; ` ` ` `#define ll long long int ` ` ` `// Function to find the ` `// maximum possible prime divisors ` `// of a number can have with N divisors ` `void` `findMaxPrimeDivisor(` `int` `n){ ` ` ` ` ` `int` `max_possible_prime = 0; ` ` ` ` ` `// Number of time number ` ` ` `// divided by 2 ` ` ` `while` `(n % 2 == 0) { ` ` ` `max_possible_prime++; ` ` ` `n = n / 2; ` ` ` `} ` ` ` ` ` `// Divide by other prime numbers ` ` ` `for` `(` `int` `i = 3; i * i <= n; i = i + 2) { ` ` ` `while` `(n % i == 0) { ` ` ` `max_possible_prime++; ` ` ` `n = n / i; ` ` ` `} ` ` ` `} ` ` ` ` ` `// If the last number of also ` ` ` `// prime then also include it ` ` ` `if` `(n > 2) { ` ` ` `max_possible_prime++; ` ` ` `} ` ` ` ` ` `cout << max_possible_prime << ` `"\n"` `; ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` ` ` `int` `n = 4; ` ` ` ` ` `// Function Call ` ` ` `findMaxPrimeDivisor(n); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation to find the ` `// maximum possible prime divisor ` `// of a number can have N divisors ` `import` `java.util.*; ` ` ` `class` `GFG{ ` ` ` `// Function to find the ` `// maximum possible prime divisors ` `// of a number can have with N divisors ` `static` `void` `findMaxPrimeDivisor(` `int` `n) ` `{ ` ` ` `int` `max_possible_prime = ` `0` `; ` ` ` ` ` `// Number of time number ` ` ` `// divided by 2 ` ` ` `while` `(n % ` `2` `== ` `0` `) ` ` ` `{ ` ` ` `max_possible_prime++; ` ` ` `n = n / ` `2` `; ` ` ` `} ` ` ` ` ` `// Divide by other prime numbers ` ` ` `for` `(` `int` `i = ` `3` `; i * i <= n; i = i + ` `2` `) ` ` ` `{ ` ` ` `while` `(n % i == ` `0` `) ` ` ` `{ ` ` ` `max_possible_prime++; ` ` ` `n = n / i; ` ` ` `} ` ` ` `} ` ` ` ` ` `// If the last number of also ` ` ` `// prime then also include it ` ` ` `if` `(n > ` `2` `) ` ` ` `{ ` ` ` `max_possible_prime++; ` ` ` `} ` ` ` `System.out.print(max_possible_prime + ` `"\n"` `); ` `} ` ` ` `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `int` `n = ` `4` `; ` ` ` ` ` `// Function Call ` ` ` `findMaxPrimeDivisor(n); ` `} ` `} ` ` ` `// This code is contributed by amal kumar choubey ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation to find the ` `# maximum possible prime divisor ` `# of a number can have N divisors ` ` ` `# Function to find the maximum ` `# possible prime divisors of a ` `# number can have with N divisors ` `def` `findMaxPrimeDivisor(n): ` ` ` ` ` `max_possible_prime ` `=` `0` ` ` ` ` `# Number of time number ` ` ` `# divided by 2 ` ` ` `while` `(n ` `%` `2` `=` `=` `0` `): ` ` ` `max_possible_prime ` `+` `=` `1` ` ` `n ` `=` `n ` `/` `/` `2` ` ` ` ` `# Divide by other prime numbers ` ` ` `i ` `=` `3` ` ` `while` `(i ` `*` `i <` `=` `n): ` ` ` `while` `(n ` `%` `i ` `=` `=` `0` `): ` ` ` ` ` `max_possible_prime ` `+` `=` `1` ` ` `n ` `=` `n ` `/` `/` `i ` ` ` `i ` `=` `i ` `+` `2` ` ` ` ` `# If the last number of also ` ` ` `# prime then also include it ` ` ` `if` `(n > ` `2` `): ` ` ` `max_possible_prime ` `+` `=` `1` ` ` ` ` `print` `(max_possible_prime) ` ` ` `# Driver Code ` `n ` `=` `4` ` ` `# Function Call ` `findMaxPrimeDivisor(n) ` ` ` `# This code is contributed by SHUBHAMSINGH10 ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation to find the ` `// maximum possible prime divisor ` `// of a number can have N divisors ` `using` `System; ` ` ` `class` `GFG{ ` ` ` `// Function to find the ` `// maximum possible prime divisors ` `// of a number can have with N divisors ` `static` `void` `findMaxPrimeDivisor(` `int` `n) ` `{ ` ` ` `int` `max_possible_prime = 0; ` ` ` ` ` `// Number of time number ` ` ` `// divided by 2 ` ` ` `while` `(n % 2 == 0) ` ` ` `{ ` ` ` `max_possible_prime++; ` ` ` `n = n / 2; ` ` ` `} ` ` ` ` ` `// Divide by other prime numbers ` ` ` `for` `(` `int` `i = 3; i * i <= n; i = i + 2) ` ` ` `{ ` ` ` `while` `(n % i == 0) ` ` ` `{ ` ` ` `max_possible_prime++; ` ` ` `n = n / i; ` ` ` `} ` ` ` `} ` ` ` ` ` `// If the last number of also ` ` ` `// prime then also include it ` ` ` `if` `(n > 2) ` ` ` `{ ` ` ` `max_possible_prime++; ` ` ` `} ` ` ` `Console.Write(max_possible_prime + ` `"\n"` `); ` `} ` ` ` `// Driver Code ` `public` `static` `void` `Main(String[] args) ` `{ ` ` ` `int` `n = 4; ` ` ` ` ` `// Function Call ` ` ` `findMaxPrimeDivisor(n); ` `} ` `} ` ` ` `// This code is contributed by amal kumar choubey ` |

*chevron_right*

*filter_none*

**Output:**

2

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.