# 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