# Check if the frequency of all the digits in a number is same

Given a positive number ‘N’, the task is to find whether ‘N’ is balanced or not. Output ‘YES’ if ‘N’ is a balanced number else ‘NO’.

A number is balanced if the frequency of all the digits in it is same i.e. all the digits appear the same number of times.

Examples:

```Input: N = 1234567890
Output: YES
The frequencies of all the digits are same.
i.e. every digit appears same number of times.

Input: N = 1337
Output: NO
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

• Create an array `freq[]` of size 10 which will store the frequency of each digit in ‘N’.
• Then, check if all the digits of ‘N’ have the same frequency or not.
• If yes then print ‘`YES`‘ or ‘`NO`‘ otherwise.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// returns true if the number ` `// passed as the argument ` `// is a balanced number. ` `bool` `isNumBalanced(``int` `N) ` `{ ` ` `  `    ``string st = to_string(N); ` `    ``bool` `isBalanced = ``true``; ` ` `  `    ``// frequency array to store ` `    ``// the frequencies of all ` `    ``// the digits of the number ` `    ``int` `freq[10] = {0}; ` `    ``int` `i = 0; ` `    ``int` `n = st.size(); ` ` `  `    ``for` `(i = 0; i < n; i++) ` ` `  `        ``// store the frequency of ` `        ``// the current digit ` `        ``freq[st[i] - ``'0'``]++; ` ` `  `    ``for` `(i = 0; i < 9; i++) ` `    ``{ ` ` `  `        ``// if freq[i] is not ` `        ``// equal to freq[i + 1] at ` `        ``// any index 'i' then set ` `        ``// isBalanced to false ` `        ``if` `(freq[i] != freq[i + 1]) ` `            ``isBalanced = ``false``; ` `    ``} ` ` `  `    ``// return true if ` `    ``// the string is balanced ` `    ``if` `(isBalanced) ` `        ``return` `true``; ` `    ``else` `        ``return` `false``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `N = 1234567890; ` `    ``bool` `flag = isNumBalanced(N); ` ` `  `    ``if` `(flag) ` `        ``cout << ``"YES"``; ` `    ``else` `        ``cout << ``"NO"``; ` `} ` ` `  `// This code is contributed by ihritik `

## Java

 `// Java implementation of the approach ` `class` `GFG { ` ` `  `    ``// returns true if the number ` `    ``// passed as the argument ` `    ``// is a balanced number. ` `    ``static` `boolean` `isNumBalanced(``int` `N) ` `    ``{ ` ` `  `        ``String st = ``""` `+ N; ` `        ``boolean` `isBalanced = ``true``; ` ` `  `        ``// frequency array to store ` `        ``// the frequencies of all ` `        ``// the digits of the number ` `        ``int``[] freq = ``new` `int``[``10``]; ` `        ``int` `i = ``0``; ` `        ``int` `n = st.length(); ` ` `  `        ``for` `(i = ``0``; i < n; i++) ` ` `  `            ``// store the frequency of ` `            ``// the current digit ` `            ``freq[st.charAt(i) - ``'0'``]++; ` ` `  `        ``for` `(i = ``0``; i < ``9``; i++) { ` ` `  `            ``// if freq[i] is not ` `            ``// equal to freq[i + 1] at ` `            ``// any index 'i' then set ` `            ``// isBalanced to false ` `            ``if` `(freq[i] != freq[i + ``1``]) ` `                ``isBalanced = ``false``; ` `        ``} ` ` `  `        ``// return true if ` `        ``// the string is balanced ` `        ``if` `(isBalanced) ` `            ``return` `true``; ` `        ``else` `            ``return` `false``; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `N = ``1234567890``; ` `        ``boolean` `flag = isNumBalanced(N); ` ` `  `        ``if` `(flag) ` `            ``System.out.println(``"YES"``); ` `        ``else` `            ``System.out.println(``"NO"``); ` `    ``} ` `} `

## Java

 `// Implementation of JAVA to check the  ` `// given number is Balanced or not ` `import` `java.util.*; ` `public` `class` `Main ` `{ ` `    ``// returns true if the number  ` `    ``// passed as the argument  ` `    ``// is a balanced number.  ` `    ``public` `static` `boolean` `isNumBalanced(``int` `num){ ` `        ``// to get the absolute value of the number ` `        ``num=Math.abs(num); ` `         `  `        ``// to convert the int number into a String ` `        ``String str=num+``""``;  ` `         `  `        ``// to convert the String into Character Array ` `        ``char``[] ch_arr=str.toCharArray(); ` `         `  `        ``// HashSet is used to remove the duplicates  ` `        ``// in the Character Array ` `        ``HashSet hs=``new` `HashSet(); ` `        ``for``(``char` `ch:ch_arr){ ` `            ``// Adding the Characters in the Array in the Set ` `            ``hs.add(ch); ` `        ``} ` `        ``// getting the length of the String ` `        ``int` `str_len=str.length(); ` `         `  `        ``// getting the numbers of elemnts in the HashSet ` `        ``int` `hs_len=hs.size(); ` `        ``// return true if  ` `        ``// the number is balanced ` `        ``// checks for the number is balanced or not by ` `        ``// comparing length of String and HashSet  ` `        ``if``(hs_len<=str_len/``2` `|| hs_len==str_len) ` `        ``{ ` `            ``return` `true``; ` `        ``} ` `        ``return` `false``; ` `         `  `    ``} ` `    ``// Driver Code ` `    ``public` `static` `void` `main(String[] args) ` `        ``{ ` `            ``int` `N = ``1234567890``; ` `            ``boolean` `flag = isNumBalanced(N); ` `     `  `            ``if` `(flag) ` `                ``System.out.println(``"YES"``); ` `            ``else` `                ``System.out.println(``"NO"``); ` `        ``} ` `    ``} ` `    ``// This code is contributed by Mano `

## Python3

 `# Python3 implementation of the above approach ` ` `  `# Returns true if the number passed as  ` `# the argument is a balanced number.  ` `def` `isNumBalanced(N):  ` ` `  `    ``st ``=` `str``(N)  ` `    ``isBalanced ``=` `True` ` `  `    ``# Frequency array to store the frequencies ` `    ``# of all the digits of the number  ` `    ``freq ``=` `[``0``] ``*` `10` `    ``n ``=` `len``(st)  ` ` `  `    ``for` `i ``in` `range``(``0``, n):  ` ` `  `        ``# store the frequency of the  ` `        ``# current digit  ` `        ``freq[``int``(st[i])] ``+``=` `1` ` `  `    ``for` `i ``in` `range``(``0``, ``9``):  ` ` `  `        ``# if freq[i] is not equal to  ` `        ``# freq[i + 1] at any index 'i' ` `        ``# then set isBalanced to false  ` `        ``if` `freq[i] !``=` `freq[i ``+` `1``]:  ` `            ``isBalanced ``=` `False` ` `  `    ``# Return true if the string  ` `    ``# is balanced  ` `    ``if` `isBalanced:  ` `        ``return` `True` `    ``else``: ` `        ``return` `False` ` `  `# Driver code  ` `if` `__name__ ``=``=` `"__main__"``:  ` `     `  `    ``N ``=` `1234567890` `    ``flag ``=` `isNumBalanced(N)  ` ` `  `    ``if` `flag:  ` `        ``print``(``"YES"``)  ` `    ``else``: ` `        ``print``(``"NO"``)  ` `     `  `# This code is contributed by Rituraj Jain `

## C#

 `// CSHARP implementation of the above approach ` `using` `System; ` ` `  `class` `Program ` `{ ` `// returns true if the number ` `// passed as the argument ` `// is a balanced number. ` `static` `bool` `isNumBalanced(``int` `N) ` `{ ` `    ``String st = ``""` `+ N; ` `    ``bool` `isBalanced = ``true``; ` `    ``// frequency array to store ` `    ``// the frequencies of all ` `    ``// the digits of the number ` `    ``int``[] freq = ``new` `int``[10]; ` `    ``int` `i = 0; ` `    ``int` `n = st.Length; ` `    ``for` `(i = 0; i < n; i++) ` `    ``// store the frequency of ` `    ``// the current digit ` `    ``freq[st[i] - ``'0'``]++; ` `    ``for` `(i = 0; i < 9; i++)  ` `    ``{ ` `        ``// if freq[i] is not ` `        ``// equal to freq[i + 1] at ` `        ``// any index ‘i’ then set ` `        ``// isBalanced to false ` `        ``if` `(freq[i] != freq[i + 1]) ` `        ``isBalanced = ``false``; ` `         `  `    ``} ` `    ``// return true if ` `    ``// the string is balanced ` `    ``if` `(isBalanced) ` `    ``return` `true``; ` `    ``else` `    ``return` `false``; ` `     `  `     `  `} ` ` `  `// Driver code ` `static` `void` `Main() ` `{ ` `    ``int` `N = 1234567890; ` `    ``bool` `flag = isNumBalanced(N); ` `    ``if` `(flag) ` `    ``Console.WriteLine(``"YES"``); ` `    ``else` `    ``Console.WriteLine(``"NO"``); ` ` `  `} ` `// This code is contributed by ANKITRAI1 ` `} `

## PHP

 ` `

Output:

```YES
```

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.