Given a number n, the task is to find the even factor sum of a number.
Input : 30 Output : 48 Even dividers sum 2 + 6 + 10 + 30 = 48 Input : 18 Output : 26 Even dividers sum 2 + 6 + 18 = 26
Prerequisite : Sum of factors
As discussed in above mentioned previous post, sum of factors of a number is
Let p1, p2, … pk be prime factors of n. Let a1, a2, .. ak be highest powers of p1, p2, .. pk respectively that divide n, i.e., we can write n as n = (p1a1)*(p2a2)* … (pkak).
Sum of divisors = (1 + p1 + p12 ... p1a1) * (1 + p2 + p22 ... p2a2) * ........................... (1 + pk + pk2 ... pkak)
If number is odd, then there are no even factors, so we simply return 0.
If number is even, we use above formula. We only need to ignore 20. All other terms multiply to produce even factor sum. For example, consider n = 18. It can be written as 2132 and sun of all factors is (20 + 21)*(30 + 31 + 32). if we remove 20 then we get the
Sum of even factors (2)*(1+3+32) = 26.
To remove odd number in even factor, we ignore then 20 whaich is 1. After this step, we only get even factors. Note that 2 is the only even prime.
Below is the implementation of the above approach.
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Improved By : Mithun Kumar
- Sum of all the factors of a number
- Find sum of odd factors of a number
- Check if all digits of a number divide it
- Program for Fibonacci numbers
- Sum of squares of first n natural numbers
- Number of Permutations such that no Three Terms forms Increasing Subsequence
- Check if the first and last digit of the smallest number forms a prime
- Print all substring of a number without any conversion
- Complement of a number with any base b
- Check if Decimal representation of an Octal number is divisible by 7