# Maximum possible prime divisors that can exist in numbers having exactly N divisors

• Last Updated : 30 May, 2021

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:

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`

## Javascript

 ``

Output:

`2`

Time Complexity: O(sqrt(N) * logN )

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles