Given a number n, the task is to find the even factor sum of a number.

Examples:

Input : 30 Output : 48 Even dividers sum 2 + 6 + 10 + 30 = 48 Input : 18 Output : 26 Even dividers sum 2 + 6 + 18 = 26

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 = (p1 ^{a1})*(p2^{a2})* … (pk^{ak})**.

Sum of divisors = (1 + p1 + p1^{2}... p1^{a1}) * (1 + p2 + p2^{2}... p2^{a2}) * ........................... (1 + pk + pk^{2}... pk^{ak})

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 2^{0}. All other terms multiply to produce even factor sum. For example, consider n = 18. It can be written as 2^{1}3^{2} and sun of all factors is (2^{0} + 2^{1})*(3^{0} + 3^{1} + 3^{2}). if we remove 2^{0} then we get the

Sum of even factors (2)*(1+3+3^{2}) = 26.

To remove odd number in even factor, we ignore then 2^{0} whaich is 1. After this step, we only get even factors. Note that 2 is the only even prime.

`// Formula based Java program to ` `// find sum of all divisors of n. ` `import` `java.util.*; ` `import` `java.lang.*; ` ` ` `public` `class` `GfG { ` ` ` ` ` `// Returns sum of all factors of n. ` ` ` `public` `static` `int` `sumofFactors(` `int` `n) ` ` ` `{ ` ` ` `// If n is odd, then there ` ` ` `// are no even factors. ` ` ` `if` `(n % ` `2` `!= ` `0` `) ` ` ` `return` `0` `; ` ` ` ` ` `// Traversing through all prime ` ` ` `// factors. ` ` ` `int` `res = ` `1` `; ` ` ` `for` `(` `int` `i = ` `2` `; i <= Math.sqrt(n); i++) { ` ` ` `int` `count = ` `0` `, curr_sum = ` `1` `; ` ` ` `int` `curr_term = ` `1` `; ` ` ` ` ` `// While i divides n, print i and ` ` ` `// divide n ` ` ` `while` `(n % i == ` `0` `) { ` ` ` `count++; ` ` ` ` ` `n = n / i; ` ` ` ` ` `// here we remove the 2^0 that ` ` ` `// is 1. All other factors ` ` ` `if` `(i == ` `2` `&& count == ` `1` `) ` ` ` `curr_sum = ` `0` `; ` ` ` ` ` `curr_term *= i; ` ` ` `curr_sum += curr_term; ` ` ` `} ` ` ` ` ` `res *= curr_sum; ` ` ` `} ` ` ` ` ` `// This condition is to handle the ` ` ` `// case when n is a prime number. ` ` ` `if` `(n >= ` `2` `) ` ` ` `res *= (` `1` `+ n); ` ` ` ` ` `return` `res; ` ` ` `} ` ` ` ` ` `// Driver function ` ` ` `public` `static` `void` `main(String argc[]) ` ` ` `{ ` ` ` `int` `n = ` `18` `; ` ` ` `System.out.println(sumofFactors(n)); ` ` ` `} ` `} ` ` ` `/* This code is contributed by Sagar Shukla */` |

*chevron_right*

*filter_none*

**Output:**

26

Please refer complete article on Find sum of even factors of a number for more details!

## Recommended Posts:

- Java Program to Find minimum sum of factors of number
- Program for Find sum of odd factors of a number
- Java Program to find Product of unique prime factors of a number
- Java Program for Number of elements with odd factors in given range
- Java Program for efficiently print all prime factors of a given number
- Java Program to Find the Sum of First N Odd & Even Numbers
- Java Program to Find the Frequency of Odd & Even Numbers in the Matrix
- Java Program for Odd-Even Sort / Brick Sort
- Java Program to Check if count of divisors is even or odd
- Java Program for Difference between sums of odd and even digits
- Java program to print Even length words in a String
- Java Program to Check if a Given Integer is Odd or Even
- Java Program to Store Even & Odd Elements of an Array into Separate Arrays
- Java Program to Reverse a Number and find the Sum of its Digits Using do-while Loop
- Java Program to Find the Number Occurring Odd Number of Times
- Java Program for Program to find area of a circle
- Java Program to find the sum of a Series 1/1! + 2/2! + 3/3! + 4/4! +.......+ n/n!
- Java Program to find sum of array
- Java Program to Find sum of Series with n-th term as n^2 - (n-1)^2
- Java Program for Sum the digits of a given number