Related Articles
Maximum possible prime divisors that can exist in numbers having exactly N divisors
• Last Updated : 19 Jun, 2020

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 = 22
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 ` ` `  `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; ` `} `

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

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

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

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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :