# Count pairs from a given range having even sum

Given two positive integers **L **and **R**, the task is to find the count of ordered pairs in the range **[L, R]** such that the sum of elements of each pair is even.

**Examples:**

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

Input:L = 1, R =3Output:5Explanation:

Pairs whose sum of elements are even and lies in the range [1, 3] are { (1, 3), (1, 1), (2, 2), (3, 3), (3, 1) }

Input:L = 1, R = 1Output:1

**Approach: **The problem can be solved using the fact that the sum of two numbers is even only when both the numbers are even or both the numbers are odd. Follow the steps below to solve this problem:

- Count all the even numbers, say
**cnt_even**, in the range**[L, R]**. Follow the steps below in order to calculate:- If
**L**is even, then**cnt_even = (R / 2) – (L / 2) + 1**. - If L is odd, then
**cnt_even = (R / 2) – (L / 2)**.

- If
- The count of pairs whose sum of elements is even and both the elements of the pairs are also even is
**count_even * count_even**. - Similarly, count all the odd numbers, say
**count_odd**, in the range**[L, R]**. Follow the steps below in order to calculate:- If
**L**is even, then**count_odd = ((R + 1) / 2) – ((L + 1) / 2)**. - If
**L**is odd, then**count_odd = ( (R+1) / 2) – ((L + 1) / 2) + 1**.

- If
- The count of pairs whose sum of elements is even and both the elements of the pairs are also odd is
**count_odd * count_odd** - Finally, print the value of
**(count_odd * count_odd + count_even * count_even)**

Below is the implementation of the above approach:

## C++14

`// C++ program for the above approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find the count of` `// ordered pairs having even sum` `int` `countPairs(` `int` `L, ` `int` `R)` `{` ` ` `// Stores count of even numbers` ` ` `// in the range [L, R]` ` ` `int` `count_even;` ` ` `// If L is even` ` ` `if` `(L % 2 == 0) {` ` ` `// Update count_even` ` ` `count_even = (R / 2) - (L / 2) + 1;` ` ` `}` ` ` `else` `{` ` ` `// Update count_odd` ` ` `count_even = (R / 2) - (L / 2);` ` ` `}` ` ` `// Stores count of odd numbers` ` ` `// in the range [L, R]` ` ` `int` `count_odd;` ` ` `if` `(L % 2 == 0) {` ` ` `// Update count_odd` ` ` `count_odd = ((R + 1) / 2) - ((L + 1) / 2);` ` ` `}` ` ` `else` `{` ` ` `// Update count_odd` ` ` `count_odd = ((R + 1) / 2) - ((L + 1) / 2) + 1;` ` ` `}` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are also even` ` ` `count_even *= count_even;` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are odd` ` ` `count_odd *= count_odd;` ` ` `// Print total ordered pairs whose sum is even` ` ` `cout << count_even + count_odd;` `}` `// Driver Code` `int` `main()` `{` ` ` `// Given L & R` ` ` `int` `L = 1, R = 3;` ` ` `// Function Call` ` ` `countPairs(L, R);` ` ` `return` `0;` `}` |

## Java

`// Java program for the above approach` `class` `GFG` `{` ` ` `// Function to find the count of` ` ` `// ordered pairs having even sum` ` ` `static` `void` `countPairs(` `int` `L, ` `int` `R)` ` ` `{` ` ` `// Stores count of even numbers` ` ` `// in the range [L, R]` ` ` `int` `count_even;` ` ` `// If L is even` ` ` `if` `(L % ` `2` `== ` `0` `)` ` ` `{` ` ` `// Update count_even` ` ` `count_even = (R / ` `2` `) - (L / ` `2` `) + ` `1` `;` ` ` `}` ` ` `else` `{` ` ` `// Update count_odd` ` ` `count_even = (R / ` `2` `) - (L / ` `2` `);` ` ` `}` ` ` `// Stores count of odd numbers` ` ` `// in the range [L, R]` ` ` `int` `count_odd;` ` ` `if` `(L % ` `2` `== ` `0` `)` ` ` `{` ` ` `// Update count_odd` ` ` `count_odd = ((R + ` `1` `) / ` `2` `) - ((L + ` `1` `) / ` `2` `);` ` ` `}` ` ` `else` ` ` `{` ` ` `// Update count_odd` ` ` `count_odd = ((R + ` `1` `) / ` `2` `) - ((L + ` `1` `) / ` `2` `) + ` `1` `;` ` ` `}` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are also even` ` ` `count_even *= count_even;` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are odd` ` ` `count_odd *= count_odd;` ` ` `// Print total ordered pairs whose sum is even` ` ` `System.out.println(count_even + count_odd);` ` ` `}` ` ` `// Driver Code` ` ` `public` `static` `void` `main (String[] args)` ` ` `{` ` ` `// Given L & R` ` ` `int` `L = ` `1` `, R = ` `3` `;` ` ` `// Function Call` ` ` `countPairs(L, R);` ` ` `}` `}` `// This code is contributed by AnkThon` |

## Python3

`# Python3 program for the above approach` `# Function to find the count of` `# ordered pairs having even sum` `def` `countPairs(L, R):` ` ` ` ` `# Stores count of even numbers` ` ` `# in the range [L, R]` ` ` `count_even ` `=` `0` ` ` `# If L is even` ` ` `if` `(L ` `%` `2` `=` `=` `0` `):` ` ` ` ` `# Update count_even` ` ` `count_even ` `=` `((R ` `/` `/` `2` `) ` `-` ` ` `(L ` `/` `/` `2` `) ` `+` `1` `)` ` ` `else` `:` ` ` ` ` `# Update count_odd` ` ` `count_even ` `=` `((R ` `/` `/` `2` `) ` `-` ` ` `(L ` `/` `/` `2` `))` ` ` `# Stores count of odd numbers` ` ` `# in the range [L, R]` ` ` `count_odd ` `=` `0` ` ` ` ` `if` `(L ` `%` `2` `=` `=` `0` `):` ` ` ` ` `# Update count_odd` ` ` `count_odd ` `=` `(((R ` `+` `1` `) ` `/` `/` `2` `) ` `-` ` ` `((L ` `+` `1` `) ` `/` `/` `2` `))` ` ` `else` `:` ` ` ` ` `# Update count_odd` ` ` `count_odd ` `=` `(((R ` `+` `1` `) ` `/` `/` `2` `) ` `-` ` ` `((L ` `+` `1` `) ` `/` `/` `2` `) ` `+` `1` `)` ` ` `# Stores count of pairs whose sum is` ` ` `# even and both elements of the pairs` ` ` `# are also even` ` ` `count_even ` `*` `=` `count_even` ` ` `# Stores count of pairs whose sum is` ` ` `# even and both elements of the pairs` ` ` `# are odd` ` ` `count_odd ` `*` `=` `count_odd` ` ` `# Print total ordered pairs whose` ` ` `# sum is even` ` ` `print` `(count_even ` `+` `count_odd)` `# Driver Code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` `# Given L & R` ` ` `L, R ` `=` `1` `, ` `3` ` ` `# Function Call` ` ` `countPairs(L, R)` `# This code is contributed by mohit kumar 29` |

## C#

`// C# program for the above approach` `using` `System;` `class` `GFG` `{` ` ` `// Function to find the count of` ` ` `// ordered pairs having even sum` ` ` `static` `void` `countPairs(` `int` `L, ` `int` `R)` ` ` `{` ` ` `// Stores count of even numbers` ` ` `// in the range [L, R]` ` ` `int` `count_even;` ` ` `// If L is even` ` ` `if` `(L % 2 == 0)` ` ` `{` ` ` `// Update count_even` ` ` `count_even = (R / 2) - (L / 2) + 1;` ` ` `}` ` ` `else` ` ` `{` ` ` `// Update count_odd` ` ` `count_even = (R / 2) - (L / 2);` ` ` `}` ` ` `// Stores count of odd numbers` ` ` `// in the range [L, R]` ` ` `int` `count_odd;` ` ` `if` `(L % 2 == 0)` ` ` `{` ` ` `// Update count_odd` ` ` `count_odd = ((R + 1) / 2) - ((L + 1) / 2);` ` ` `}` ` ` `else` ` ` `{` ` ` `// Update count_odd` ` ` `count_odd = ((R + 1) / 2) - ((L + 1) / 2) + 1;` ` ` `}` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are also even` ` ` `count_even *= count_even;` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are odd` ` ` `count_odd *= count_odd;` ` ` `// Print total ordered pairs whose sum is even` ` ` `Console.WriteLine(count_even + count_odd);` ` ` `}` ` ` `// Driver Code` ` ` `public` `static` `void` `Main(String[] args)` ` ` `{` ` ` `// Given L & R` ` ` `int` `L = 1, R = 3;` ` ` `// Function Call` ` ` `countPairs(L, R);` ` ` `}` `}` `// This code is contributed by 29AjayKumar` |

## Javascript

`<script>` `// Javascript program of the above approach` `// Function to find the count of` `// ordered pairs having even sum` `function` `countPairs(L, R)` `{` ` ` `// Stores count of even numbers` ` ` `// in the range [L, R]` ` ` `let count_even;` ` ` ` ` `// If L is even` ` ` `if` `(L % 2 == 0)` ` ` `{` ` ` ` ` `// Update count_even` ` ` `count_even = (R / 2) - (L / 2) + 1;` ` ` `}` ` ` `else` ` ` `{` ` ` ` ` `// Update count_odd` ` ` `count_even = (R / 2) - (L / 2);` ` ` `}` ` ` ` ` `// Stores count of odd numbers` ` ` `// in the range [L, R]` ` ` `let count_odd;` ` ` `if` `(L % 2 == 0)` ` ` `{` ` ` ` ` `// Update count_odd` ` ` `count_odd = ((R + 1) / 2) -` ` ` `((L + 1) / 2);` ` ` `}` ` ` `else` ` ` `{` ` ` ` ` `// Update count_odd` ` ` `count_odd = ((R + 1) / 2) -` ` ` `((L + 1) / 2) + 1;` ` ` `}` ` ` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are also even` ` ` `count_even *= count_even;` ` ` ` ` `// Stores count of pairs whose sum is even and` ` ` `// both elements of the pairs are odd` ` ` `count_odd *= count_odd;` ` ` ` ` `// Print total ordered pairs whose sum is even` ` ` `document.write(count_even + count_odd);` `}` `// Driver Code` `// Given L & R` `let L = 1, R = 3;` `// Function Call` `countPairs(L, R);` `// This code is contributed by avijitmondal1998` `</script>` |

**Output:**

5

**Time Complexity: **O(1)**Auxiliary Space:** O(1)