Given a number N, the task is to find whether N has an equal number of odd and even factors.
Input: N = 10
Explanation: 10 has two odd factors (1 and 5) and two even factors (2 and 10)
Input: N = 24
Explanation: 24 has two odd factors (1 and 3) and six even factors (2, 4, 6, 8 12 and 24)
Input: N = 125
Naive Approach: Find all the divisors and check whether count of odd divisors is same as count of even divisors.
Below is the implementation of the above approach
Time Complexity: O(sqrt(N))
Auxiliary Space: O(1)
The following observation must be made to optimize the above approach:
- According to Unique Factorisation Theorem any number can be expressed in terms of the product of the power of primes. So, N can be expressed as :
N = P1A1 * P2A2 * P3A3 * …….. * PkAK where, each Pi is a prime and each Ai is a positive integer.(1 <= i <= K)
- Using law of combinators any divisor of N would be of the form :
N = P1B1 * P2B2 * P3B3 * …….. * PKBK where Bi is an integer and 0 <= Bi <= Ai for 1 <= i <= K.
- A divisor would be odd if it dosen’t contain 2 in its prime factorisation. So, if P1 = 2 then B1 must be 0. It can be done in only 1 way.
- For even divisors, B1 can be replaced by 1 (or) 2 (or)….A1 to get a divisor. It can be done in B1 ways.
- Now for others each Bi can be replaced either with 0 (or) 1 (or) 2….(or) Ai for 1 <= i <= K. It can be done in (Ai+1) ways.
- By Fundamental principle :
- Number of odd divisors are: X = 1 * (A2+1) * (A3+1) * ….. * (AK+1).
- Similarly, Number of even divisors are: Y = A1 * (A2+1) * (A3+1) * …. * (AK+1).
- For no. of even divisors to be equal to no. of odd divisors X, Y should be equal. This is possible only when A1 = 1.
So, it can be concluded that number of even and odd divisors of a number are equal, if it has 1 (and only 1) power of 2 in its prime factorisation.
Follow the steps below to solve the problem:
- For a given number N, check if it is divisible by 2.
- If the number is divisible by 2, then check if it is divisible by 22. If yes, then the number won’t have an equal number of odd and even factors. If not, then the number will have an equal number of odd and even factors.
- If the number is not divisible by 2, then the number will never have any even factor and thus it won’t have an equal number of odd and even factors.
Below is the implementation of the above approach.
Time Complexity: O(1)
Auxiliary Space: O(1)
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.
- Python | Count the array elements with factors less than or equal to the factors of given x
- Check if a number exists having exactly N factors and K prime factors
- Minimise N such that sum of count of all factors upto N is greater than or equal to X
- Count numbers in a range having GCD of powers of prime factors equal to 1
- Check whether a number has exactly three distinct factors or not
- Check if count of Alphabets and count of Numbers are equal in the given String
- Check if all Prime factors of number N are unique or not
- Check if there exists a number with X factors out of which exactly K are prime
- Find number of factors of N when location of its two factors whose product is N is given
- Check if the count of inversions of two given types on an Array are equal or not
- Maximum number of prime factors a number can have with exactly x factors
- Count the number of walks of length N where cost of each walk is equal to a given number
- Count number of triplets with product equal to given number with duplicates allowed
- Check if the binary representation of a number has equal number of 0s and 1s in blocks
- Check whether all the rotations of a given number is greater than or equal to the given number or not
- Count number of subsets of a set with GCD equal to a given number
- Count number of integers less than or equal to N which has exactly 9 divisors
- Count the numbers < N which have equal number of divisors as K
- Count the number of subsequences of length k having equal LCM and HCF
- Find four factors of N with maximum product and sum equal to N
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.