# Python Program for Find sum of even factors of a number

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

Input :30Output :48 Even dividers sum 2 + 6 + 10 + 30 = 48Input :18Output :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} which is 1. After this step, we only get even factors. Note that 2 is the only even prime.

## python3

`# Formula based Python3` `# program to find sum` `# of alldivisors of n.` `import` `math` `# Returns sum of all` `# factors of n.` `def` `sumofFactors(n) :` ` ` ` ` `# If n is odd, then` ` ` `# there are no even` ` ` `# factors.` ` ` `if` `(n ` `%` `2` `!` `=` `0` `) :` ` ` `return` `0` ` ` ` ` `# Traversing through` ` ` `# all prime factors.` ` ` `res ` `=` `1` ` ` `for` `i ` `in` `range` `(` `2` `, (` `int` `)(math.sqrt(n)) ` `+` `1` `) :` ` ` ` ` `# While i divides n` ` ` `# print i and divide n` ` ` `count ` `=` `0` ` ` `curr_sum ` `=` `1` ` ` `curr_term ` `=` `1` ` ` `while` `(n ` `%` `i ` `=` `=` `0` `) :` ` ` `count` `=` `count ` `+` `1` ` ` ` ` `n ` `=` `n ` `/` `/` `i` ` ` ` ` `# here we remove the` ` ` `# 2^0 that is 1. All` ` ` `# other factors` ` ` `if` `(i ` `=` `=` `2` `and` `count ` `=` `=` `1` `) :` ` ` `curr_sum ` `=` `0` ` ` ` ` `curr_term ` `=` `curr_term ` `*` `i` ` ` `curr_sum ` `=` `curr_sum ` `+` `curr_term` ` ` ` ` `res ` `=` `res ` `*` `curr_sum` ` ` ` ` ` ` `# This condition is to` ` ` `# handle the case when` ` ` `# n is a prime number.` ` ` `if` `(n >` `=` `2` `) :` ` ` `res ` `=` `res ` `*` `(` `1` `+` `n)` ` ` ` ` `return` `res` `# Driver code` `n ` `=` `18` `print` `(sumofFactors(n))` `# This code is contributed by Nikita Tiwari.` |

**Output**

26

**Method:** Finding even factors sum of a given number using only for loop and if statements .

1. Iterate from the start range 1 to the given number to find the factors of a number using modulo division.

2. Finding even factors from the obtained factors by performing modulo division of a factor with 2. if the result of modulo division is equal to 0 then it should be considered as an even factor.

3. Adding all even factors and storing the result in s.

4. Print the sum of the even factors.

## Python3

`# Python code` `# To find the sum of even factors of a number` `def` `evenfactorssum(n):` ` ` `s ` `=` `0` ` ` `for` `i ` `in` `range` `(` `1` `, n` `+` `1` `):` ` ` `# finding factors of a given number` ` ` `if` `n ` `%` `i ` `=` `=` `0` `:` ` ` `# finding even factors of a given number` ` ` `if` `i ` `%` `2` `=` `=` `0` `:` ` ` `# adding even factors of a given number` ` ` `s ` `=` `s` `+` `i ` `# 2+6+10+30` ` ` `# printing the sum of even factors of a given number` ` ` `print` `(s)` `# driver code` `# input` `n ` `=` `18` `# the above input can also be given as` `# n=int(input()) -> taking input from the user` `evenfactorssum(n)` `# this code is contributed by gangarajula laxmi` |

**Output**

26

### Method: Using the list comprehension

## Python3

`n` `=` `18` `x` `=` `[i ` `for` `i ` `in` `range` `(` `1` `,n` `+` `1` `) ` `if` `n` `%` `i` `=` `=` `0` `and` `i` `%` `2` `=` `=` `0` `]` `print` `(` `sum` `(x))` |

**Output**

26

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