# 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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

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.