You are given a positive integer primeFactors
. You are asked to construct a positive integer n
that satisfies the following conditions:
- The number of prime factors of
n
(not necessarily distinct) is at mostprimeFactors
. - The number of nice divisors of
n
is maximized. Note that a divisor ofn
is nice if it is divisible by every prime factor ofn
. For example, ifn = 12
, then its prime factors are[2,2,3]
, then6
and12
are nice divisors, while3
and4
are not.
Return the number of nice divisors of n
. Since that number can be too large, return it modulo 109 + 7
.
Note that a prime number is a natural number greater than 1
that is not a product of two smaller natural numbers. The prime factors of a number n
is a list of prime numbers such that their product equals n
.
Input: primeFactors = 5 Output: 6 Explanation: 200 is a valid value of n. It has 5 prime factors: [2,2,2,5,5], and it has 6 nice divisors: [10,20,40,50,100,200]. There is not other value of n that has at most 5 prime factors and more nice divisors.
Input: primeFactors = 8 Output: 18
1 <= primeFactors <= 109
class Solution:
def maxNiceDivisors(self, primeFactors: int) -> int:
x, y = primeFactors // 3, primeFactors % 3
if y == 0:
y = 1
elif y == 1 and x > 0:
x -= 1
y = 4
return pow(3, x, 1000000007) * y % 1000000007