# C program to check whether a given number is even or odd

Given an integer **N**, the task is to check if the given number **N** is even or odd. If it is found to be even, then print **“Even”**. Otherwise, print **“Odd”**.

**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:N = 2Output:Even

Input:N = 5Output:Odd

**Method 1:** The simplest approach is to check if the remainder obtained after dividing the given number **N** by** 2** is **0** or **1**. If the remainder is **0**, then print **“Even”**. Otherwise, print **“Odd”**.

Below is the implementation of the above approach:

## C

`// C program for the above approach` `#include <stdio.h>` ` ` `// Function to check if a` `// number is even or odd` `void` `checkEvenOdd(` `int` `N)` `{` ` ` `// Find remainder` ` ` `int` `r = N % 2;` ` ` ` ` `// Condition for even` ` ` `if` `(r == 0) {` ` ` `printf` `(` `"Even"` `);` ` ` `}` ` ` ` ` `// Otherwise` ` ` `else` `{` ` ` `printf` `(` `"Odd"` `);` ` ` `}` `}` ` ` `// Driver Code` `int` `main()` `{` ` ` `// Given number N` ` ` `int` `N = 101;` ` ` ` ` `// Function Call` ` ` `checkEvenOdd(N);` ` ` ` ` `return` `0;` `}` |

**Output:**

Odd

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

**Method 2:** Another approach is to use Bitwise Operators. The idea is to check whether the last bit of the given number **N** is **1** or not. To check whether the last bit is **1** find the value of **(N & 1)**. If the result is **1**, then print **“Odd”**. Otherwise, print **“Even”**.

Below is the illustration for **N** = 5:

N = 5.

Binary representation of 5 is 00000101

Binary representation of 1 is 00000001

——————————————————————-

The value of Bitwise AND is 00000001Since the result is 1. Therefore, the number

N = 5is odd.

Below is the implementation of the above approach:

## C

`// C program for the above approach` ` ` `#include <stdio.h>` ` ` `// Function to check if a` `// number is even or odd` `void` `checkEvenOdd(` `int` `N)` `{` ` ` `// If N & 1 is true` ` ` `if` `(N & 1) {` ` ` `printf` `(` `"Odd"` `);` ` ` `}` ` ` ` ` `// Otherwise` ` ` `else` `{` ` ` `printf` `(` `"Even"` `);` ` ` `}` `}` ` ` `// Driver Code` `int` `main()` `{` ` ` `// Given number N` ` ` `int` `N = 101;` ` ` ` ` `// Function Call` ` ` `checkEvenOdd(N);` ` ` ` ` `return` `0;` `}` |

**Output:**

Odd

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

**Method 3:** The idea is to initialize an integer variable **var** as **1** and change it from **1** to **0** and vice-versa alternately, **N** times. If var is equal to **1** after **N** operations, print “Even”. Otherwise, print **“Odd”**.

Below is the implementation of the above approach:

## C

`// C program for the above approach` `#include <stdio.h>` ` ` `// Function to check a number is` `// even or odd` `void` `checkEvenOdd(` `int` `N)` `{` ` ` `// Initialise a variable var` ` ` `int` `var = 1;` ` ` ` ` `// Iterate till N` ` ` `for` `(` `int` `i = 1; i <= N; i++) {` ` ` ` ` `// Subtract var from 1` ` ` `var = 1 - var;` ` ` `}` ` ` ` ` `// Condition for even` ` ` `if` `(var == 1) {` ` ` `printf` `(` `"Even"` `);` ` ` `}` ` ` ` ` `// Otherwise` ` ` `else` `{` ` ` `printf` `(` `"Odd"` `);` ` ` `}` `}` ` ` `// Driver Code` `int` `main()` `{` ` ` `// Given number N` ` ` `int` `N = 101;` ` ` ` ` `// Function Call` ` ` `checkEvenOdd(N);` ` ` ` ` `return` `0;` `}` |

**Output:**

Odd

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