Number divisible by no of digit of the same number.

/* Given an integer,N, traverse its digits(d1,d2,..., dn) and determine how many digits evenly divide N(i.e.: count the number of times N divided by each digit di has a remainder of 0). Print the number of evenly divisible digits.

      Note: Each digit is considered to be unique, so each occurrence of the same evenly divisible digit should be counted(i.e.: for N=111 , the answer is 3).
      Input Format
      The first line is an integer, T, indicating the number of test cases.
      The T subsequent lines each contain an integer, N .
      Constraints
      1<=T<=15
      0<=N<=10^9
      Output Format
      For every test case, count and print(on a new line) the number of digits in N that are able to evenly divide N.
      Sample Input
      2
      12
      1012
      Sample Output
      2
      3
      Explanation
      The number 12  is broken into two digits,1 and 2. When 12 is divided by either of those digits, the calculation's remainder is 0 ; thus, the number of evenly-divisible digits in 12 is 2 .
      The number 1012 is broken into four digits ,1 , 0, 1, and 2. 1012 is evenly divisible by its digits 1, 1, and 2, but it is not divisible by 0 as 1012 division by zero is undefined; thus, our count of evenly divisible digits 1012 is 3 .

    */



   public class FindDigit
    {
        public void GetnoOfDigit()
        {
            int t = Convert.ToInt32(Console.ReadLine());
            for (int a0 = 0; a0 < t; a0++)
            {
                int n = Convert.ToInt32(Console.ReadLine());
                int temp = n, count=0;
                while (temp > 0)
                {
                 
                    int d = temp % 10;
                    if (isNumberDivisiblebyDigit(n, d))
                    {
                        count++;
                    }
                    temp = temp / 10;
                }

                Console.WriteLine(count);
            }
        }

        private bool isNumberDivisiblebyDigit(int n, int d)
        {
            return d==0 || n==d? false:n % d == 0;
        }


    }
}

No comments:

Post a Comment