# Count even and odd digits in an Integer

• Difficulty Level : Medium
• Last Updated : 16 Feb, 2023

A certain number is given and the task is to count even digits and odd digits of the number and also even digits are present even a number of times and, similarly, for odd numbers.

```Print Yes If:
If number contains even digits even number of time
Odd digits odd number of times
Else
Print No```

Examples :

```Input : 22233
Output : NO
count_even_digits = 3
count_odd_digits = 2
In this number even digits occur odd number of times and odd
digits occur even number of times so its print NO.

Input : 44555
Output : YES
count_even_digits = 2
count_odd_digits = 3
In this number even digits occur even number of times and odd
digits occur odd number of times so its print YES.```

Efficient solution for calculating even and odd digits in a number.

## C++

 `// C++ program to count ``// even and odd digits ``// in a given number``#include ``using` `namespace` `std;`` ` `// Function to count digits``int` `countEvenOdd(``int` `n)``{``      ``// Initialize event_count and odd_count``    ``int` `even_count = 0;``    ``int` `odd_count = 0;``       ` `    ``while` `(n > 0) ``    ``{``        ``int` `rem = n % 10;``          ``// if condition is true then increment even_count``        ``if` `(rem % 2 == 0) {``            ``even_count++;``        ``}``          ``// increment odd_count``        ``else` `{``            ``odd_count++;``        ``}``        ``n = n / 10;``    ``}``    ``cout << ``"Even count : "` `         ``<< even_count;``    ``cout << ``"\nOdd count : "``         ``<< odd_count;``    ``if` `(even_count % 2 == 0 && odd_count % 2 != 0) {``        ``return` `1;``    ``}``    ``else` `{``        ``return` `0;``    ``}``}`` ` `// Driver Code``int` `main()``{``    ``int` `n;``    ``n = 2335453;``      ``// Function call``    ``int` `t = countEvenOdd(n);``    ``if` `(t == 1){``        ``cout << ``"\nYES"` `<< endl;``    ``}``    ``else``{``        ``cout << ``"\nNO"` `<< endl;``    ``}``    ``return` `0;``}`

## Java

 `// Java program to count ``// even and odd digits ``// in a given number`` ` `import` `java.io.*;`` ` `class` `GFG ``{``     ` `// Function to count digits``static` `int` `countEvenOdd(``int` `n)``{``      ``// Initialize event_count and odd_count``    ``int` `even_count = ``0``;``    ``int` `odd_count = ``0``;``    ``while` `(n > ``0``) ``    ``{``        ``int` `rem = n % ``10``;``          ``// if condition is true then increment even_count``        ``if` `(rem % ``2` `== ``0``){``            ``even_count++;``        ``}``        ``// increment odd_count``        ``else` `{``            ``odd_count++;``        ``}``        ``n = n / ``10``;``    ``}``    ``System.out.println ( ``"Even count : "` `+ ``                              ``even_count);``    ``System.out.println ( ``"Odd count : "` `+ ``                              ``odd_count);``    ``if` `(even_count % ``2` `== ``0` `&& odd_count % ``2` `!= ``0``){``        ``return` `1``;``    ``}``    ``else` `{``        ``return` `0``;``    ``}``}`` ` `    ``// Driver Code``    ``public` `static` `void` `main (String[] args) ``    ``{``    ``int` `n;``    ``n = ``2335453``;``    ``// Function call``    ``int` `t = countEvenOdd(n);``     ` `    ``if` `(t == ``1``) {``        ``System.out.println ( ``"YES"` `);``    ``}``    ``else` `{``        ``System.out.println( ``"NO"``) ;``    ``}``         ` `    ``}``}`

## Python3

 `# python program to count even and ``# odd digits in a given number`` ` `# Function to count digits``def` `countEvenOdd(n):``    ``# Initialize event_count and odd_count``    ``even_count ``=` `0``    ``odd_count ``=` `0``    ``while` `(n > ``0``):``        ``rem ``=` `n ``%` `10``        ``# if condition is true then increment even_count``        ``if` `(rem ``%` `2` `=``=` `0``):``            ``even_count ``+``=` `1``        ``# increment odd count``        ``else``:``            ``odd_count ``+``=` `1``             ` `        ``n ``=` `int``(n ``/` `10``)``     ` `    ``print``( ``"Even count : "` `, even_count)``    ``print``(``"\nOdd count : "` `, odd_count)``    ``if` `(even_count ``%` `2` `=``=` `0` `and``                    ``odd_count ``%` `2` `!``=` `0``):``        ``return` `1``    ``else``:``        ``return` `0`` ` `# Driver code``n ``=` `2335453``;``# Function call``t ``=` `countEvenOdd(n);`` ` `if` `(t ``=``=` `1``):``    ``print``(``"YES"``)``else``:``    ``print``(``"NO"``)`` ` `# This code is contributed by Sam007.`

## C#

 `// C# program to count even and``// odd digits in a given number``using` `System;`` ` `class` `GFG {``     ` `// Function to count digits``static` `int` `countEvenOdd(``int` `n)``{``    ``// Initialize event_count and odd_count``    ``int` `even_count = 0;``    ``int` `odd_count = 0;``    ``while` `(n > 0) {``        ``int` `rem = n % 10;``          ``// if condition is true then increment even_count``        ``if` `(rem % 2 == 0) {``            ``even_count++;``        ``}``        ``else` `{``            ``odd_count++;``        ``}``        ``n = n / 10;``    ``}``     ` `    ``Console.WriteLine(``"Even count : "` `+ ``                       ``even_count);``    ``Console.WriteLine(``"Odd count : "` `+ ``                       ``odd_count);``    ``if` `(even_count % 2 == 0 && ``        ``odd_count % 2 != 0) {``        ``return` `1;``    ``}``    ``else` `{``        ``return` `0;``    ``}``}`` ` `    ``// Driver Code``    ``public` `static` `void` `Main ()``    ``{``            ``int` `n;``            ``n = 2335453;``              ``// Function call``            ``int` `t = countEvenOdd(n);``            ``if` `(t == 1) {``                ``Console.WriteLine (``"YES"``);``            ``}``            ``else` `{``                ``Console.WriteLine(``"NO"``) ;``            ``}       ``    ``}``}`` ` `// This code is contributed by vt_m.`

## PHP

 ` 0) ``    ``{``        ``\$rem` `= ``\$n` `% 10;``          ``// if condition is true then increment even_count``        ``if` `(``\$rem` `% 2 == 0) {``            ``\$even_count``++;``        ``}``          ``// increment odd_count``        ``else` `{``            ``\$odd_count``++;``        ``}``        ``\$n` `= (int)(``\$n` `/ 10);``    ``}``    ``echo``(``"Even count : "` `.``             ``\$even_count``);``    ``echo``(``"\nOdd count : "` `. ``               ``\$odd_count``);``    ``if` `(``\$even_count` `% 2 == 0 && ``        ``\$odd_count` `% 2 != 0) {``        ``return` `1;``    ``}``    ``else` `{``        ``return` `0;``    ``}``}`` ` `// Driver code``\$n` `= 2335453;``// Function call``\$t` `= countEvenOdd(``\$n``);``if` `(``\$t` `== 1) {``    ``echo``(``"\nYES"``);``}``else` `{``    ``echo``(``"\nNO"``);``}``// This code is contributed by Ajit.``?>`

## Javascript

 ``

Output

```Even count : 2
Odd count : 5
YES```

Time Complexity: O(n)

Auxiliary Space: O(1)

Another solution to solve this problem is a character array or string.

## C++

 `// C++ program to count ``// even and odd digits``// in a given number ``// using char array``#include ``using` `namespace` `std;`` ` `// Function to count digits``int` `countEvenOdd(``char` `num[], ``                 ``int` `n)``{``    ``int` `even_count = 0;``    ``int` `odd_count = 0;``    ``for` `(``int` `i = 0; i < n; i++) ``    ``{``        ``int` `x = num[i] - 48;``        ``if` `(x % 2 == 0) {``            ``even_count++;``        ``}``        ``else` `{``            ``odd_count++;``        ``}``    ``}``    ``cout << ``"Even count : "` `         ``<< even_count;``    ``cout << ``"\nOdd count : "` `         ``<< odd_count;`` ` `    ``if` `(even_count % 2 == 0 && odd_count % 2 != 0) {``        ``return` `1;``    ``}``    ``else` `{``        ``return` `0;``    ``}``}`` ` `// Driver Code``int` `main()``{``    ``char` `num[18] = { 1, 2, 3 };`` ` `    ``int` `n = ``strlen``(num);``      ``// Function cal``    ``int` `t = countEvenOdd(num, n);``    ``if` `(t == 1) {``        ``cout << ``"\nYES"` `<< endl;``    ``}``    ``else` `{``        ``cout << ``"\nNO"` `<< endl;``    ``}``    ``return` `0;``}`

## Java

 `// Java program to count ``// even and odd digits``// in a given number ``// using char array`` ` `import` `java.io.*;`` ` ` ` `class` `GFG ``{``     ` `// Function to count digits``static` `int` `countEvenOdd(``char` `num[], ``                        ``int` `n)``{``    ``int` `even_count = ``0``;``    ``int` `odd_count = ``0``;``    ``for` `(``int` `i = ``0``; i < n; i++)``    ``{``        ``int` `x = num[i] - ``48``;``        ``if` `(x % ``2` `== ``0``) {``            ``even_count++;``        ``}``        ``else` `{``            ``odd_count++;``        ``}``    ``}`` ` `    ``System.out.println (``"Even count : "` `+ ``                         ``even_count);``    ``System.out.println( ``"Odd count : "` `+``                         ``odd_count);`` ` `    ``if` `(even_count % ``2` `== ``0` `&& odd_count % ``2` `!= ``0``) {``        ``return` `1``;``    ``}``    ``else` `{``        ``return` `0``; ``    ``}``}`` ` `    ``// Driver Code``    ``public` `static` `void` `main (String[] args) ``    ``{``        ``char` `num[] = { ``1``, ``2``, ``3` `};`` ` `    ``int` `n = num.length;``    ``// Function call``    ``int` `t = countEvenOdd(num, n);``    ``if` `(t == ``1``) {``        ``System.out.println(``"YES"``) ;``    ``}``    ``else` `{``        ``System.out.println(``"NO"``) ;``    ``}``    ``}``}`` ` `// This code is contributed by vt_m`

## Python3

 `# Python3 program to count ``# even and odd digits``# in a given number ``# using char array`` ` `# Function to count digits``def` `countEvenOdd(num, n):``    ``even_count ``=` `0``;``    ``odd_count ``=` `0``;``    ``num``=``list``(``str``(num))``    ``for` `i ``in` `num:``        ``if` `i ``in` `(``'0'``,``'2'``,``'4'``,``'6'``,``'8'``):``            ``even_count``+``=``1``        ``else``:``            ``odd_count``+``=``1``    ``print``(``"Even count : "``, ``              ``even_count);``    ``print``(``"Odd count : "``, ``              ``odd_count);``    ``if` `(even_count ``%` `2` `=``=` `0` `and` `        ``odd_count ``%` `2` `!``=` `0``):``        ``return` `1``;``    ``else``:``        ``return` `0``;`` ` `# Driver Code``num ``=` `(``1``, ``2``, ``3``);``n ``=` `len``(num);``t ``=` `countEvenOdd(num, n);`` ` `if` `t ``=``=` `1``:``    ``print``(``"YES"``);``else``:``    ``print``(``"NO"``);``     ` `# This code is contributed by mits.`

## C#

 `// C# program to count ``// even and odd digits``// in a given number``// using char array``using` `System;`` ` `class` `GFG ``{``     ` `    ``// Function to count digits``    ``static` `int` `countEvenOdd(``char` `[]num, ``                            ``int` `n)``    ``{``        ``int` `even_count = 0;``        ``int` `odd_count = 0;``        ``for` `(``int` `i = 0; i < n; i++)``        ``{``            ``int` `x = num[i] - 48;``            ``if` `(x % 2 == 0)``                ``even_count++;``            ``else``                ``odd_count++;``        ``}``     ` `        ``Console.WriteLine(``"Even count : "` `+ ``                               ``even_count);``                             ` `        ``Console.WriteLine( ``"Odd count : "` `+``                                ``odd_count);``     ` `        ``if` `(even_count % 2 == 0 && ``            ``odd_count % 2 != 0)``            ``return` `1;``        ``else``            ``return` `0;``    ``}`` ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``char` `[] num = { ``'1'``, ``'2'``, ``'3'` `};``     ` `        ``int` `n = num.Length;``        ``int` `t = countEvenOdd(num, n);``         ` `        ``if` `(t == 1)``            ``Console.WriteLine(``"YES"``) ;``        ``else``            ``Console.WriteLine(``"NO"``) ; ``    ``}``}`` ` `// This code is contributed by Sam007.`

## PHP

 ``

## Javascript

 ``

Output

```Even count : 1
Odd count : 2
NO```

Time Complexity: O(n)

Auxiliary Space: O(1)

#### Method #3:Using typecasting(Simplified Approach):

• We have to convert the given number to a string by taking a new variable.
• Traverse the string, convert each element to an integer.
• If the character(digit) is even, then the increased count
• Else increment the odd count.
• If the even count is even and the odd count is odd, then print Yes.
• Else print no.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of above approach``#include``using` `namespace` `std;`` ` `string getResult(``int` `n)``{`` ` `  ``// Converting integer to String``  ``string st = to_string(n);``  ``int` `even_count = 0;``  ``int` `odd_count = 0;`` ` `  ``// Looping till length of String``  ``for``(``int` `i = 0; i < st.length(); i++)``  ``{``    ``if` `((st[i] % 2) == 0)`` ` `      ``// Digit is even so increment even count``      ``even_count += 1;``    ``else``      ``odd_count += 1;``  ``}`` ` `  ``// Checking even count is even and``  ``// odd count is odd``  ``if` `(even_count % 2 == 0 &&``      ``odd_count % 2 != 0)``    ``return` `"Yes"``;``  ``else``    ``return` `"no"``;``}`` ` `// Driver Code``int` `main(){`` ` `  ``int` `n = 77788;`` ` `  ``// Passing this number to get result function``  ``cout<

## Java

 `// Java implementation of above approach``class` `GFG{``     ` `static` `String getResult(``int` `n) ``{``     ` `    ``// Converting integer to String``    ``String st = String.valueOf(n);``    ``int` `even_count = ``0``;``    ``int` `odd_count = ``0``;``     ` `    ``// Looping  till length of String``    ``for``(``int` `i = ``0``; i < st.length(); i++) ``    ``{``        ``if` `((st.charAt(i) % ``2``) == ``0``)``         ` `            ``// Digit is even so increment even count``            ``even_count += ``1``;``        ``else``            ``odd_count += ``1``;``    ``}``     ` `    ``// Checking even count is even and``    ``// odd count is odd``    ``if` `(even_count % ``2` `== ``0` `&& ``         ``odd_count % ``2` `!= ``0``)``        ``return` `"Yes"``;``    ``else``        ``return` `"no"``;``}`` ` `// Driver Code``public` `static` `void` `main(String[] args) ``{``    ``int` `n = ``77788``;``     ` `    ``// Passing this number to get result function``    ``System.out.println(getResult(n));`` ` `}``}`` ` `// This code is contributed by 29AjayKumar`

## Python3

 `# Python implementation of above approach``def` `getResult(n):``   ` `    ``# Converting integer to string``    ``st ``=` `str``(n)``    ``even_count ``=` `0``    ``odd_count ``=` `0``     ` `    ``# Looping  till length of string``    ``for` `i ``in` `range``(``len``(st)):``       ` `        ``if``((``int``(st[i]) ``%` `2``) ``=``=` `0``):``             ` `            ``# digit is even so increment even count``            ``even_count ``+``=` `1``        ``else``:``            ``odd_count ``+``=` `1`` ` `    ``# Checking even count is even and odd count is odd``    ``if``(even_count ``%` `2` `=``=` `0` `and` `odd_count ``%` `2` `!``=` `0``):``        ``return` `'Yes'``    ``else``:``        ``return` `'no'`` ` ` ` `# Driver Code``n ``=` `77788`` ` `# passing this number to get result function``print``(getResult(n))`` ` `# this code is contributed by vikkycirus`

## C#

 `// C# implementation of above approach``using` `System;``using` `System.Collections.Generic;`` ` `class` `GFG{``     ` `static` `String getResult(``int` `n) ``{``     ` `    ``// Converting integer to String``    ``String st = String.Join(``""``,n);``    ``int` `even_count = 0;``    ``int` `odd_count = 0;``     ` `    ``// Looping  till length of String``    ``for``(``int` `i = 0; i < st.Length; i++) ``    ``{``        ``if` `((st[i] % 2) == 0)``         ` `            ``// Digit is even so increment even count``            ``even_count += 1;``        ``else``            ``odd_count += 1;``    ``}``     ` `    ``// Checking even count is even and``    ``// odd count is odd``    ``if` `(even_count % 2 == 0 && ``         ``odd_count % 2 != 0)``        ``return` `"Yes"``;``    ``else``        ``return` `"no"``;``}`` ` `// Driver Code``public` `static` `void` `Main(String[] args) ``{``    ``int` `n = 77788;``     ` `    ``// Passing this number to get result function``    ``Console.WriteLine(getResult(n));`` ` `}``}`` ` `// This code is contributed by Princi Singh`

## Javascript

 ``

Output

`Yes`

Time Complexity: O(n)

Auxiliary Space: O(1)

This article is contributed by Dharmendra kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.