An integer d is a divisor of an integer n if the remainder of n/d=0.
Given an integer, for each digit that makes up the integer determine whether it is a divisor. Count the number of divisors occurring within the integer.
Example
n=124
Check whether 1,2 and 4 are divisors of 124. All 3 numbers divide evenly into124 so return 3.
Check whether 1,1 , and 1 are divisors of 111. All 3 numbers divide evenly into 111 so return 3.
Check whether 1 and 0 are divisors of 10. 1 is, but 0 is not. Return 1.
Function Description
Complete the findDigits function in the editor below.
findDigits has the following parameter(s):
- int n: the value to analyze
Returns
- int: the number of digits in n that are divisors of n
Input Format
The first line is an integer,t , the number of test cases.
The t subsequent lines each contain an integer,n .
Sample Input
2 12 1012
Sample Output
2 3
Find Digits HackerRank Solution in C
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
long long T, N, j, status, i, dig_divisor = 0;
status = scanf("%lld\n", &T);
for(i = 0; i < T; i++){
status = scanf("%lld\n", &N);
j = N;
while(j > 0){
if(j % 10 == 0){
j /= 10;
continue;
}
if(N % (j % 10) == 0)
dig_divisor++;
j /= 10;
}
printf("%lld\n", dig_divisor);
dig_divisor = 0;
}
return 0;
}
Find Digits HackerRank Solution in C++
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int getR(string n, int q) {
if(!q) return 0;
int r = 0;
for(int i = 0;i < n.length();++i) {
r *= 10;
r += (n[i] - '0');
r %= q;
}
if(!r) return 1;
return 0;
}
int main() {
int T;
string n;
int res = 0;
cin >> T;
while(T--) {
cin >> n;
res = 0;
for(int i = 0;i < n.length();++i)
res += getR(n, n[i] - '0');
cout << res << endl;
}
return 0;
}
Find Digits HackerRank Solution in Java
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args){
int t;
Scanner scan = new Scanner(System.in);
t = scan.nextInt();
for(int i = 0; i < t; i++){
System.out.println(digits(scan.next()));
}
scan.close();
}
private static int digits(String number) {
int sum = 0;
char[] digits = number.toCharArray();
for(int i = 0; i < number.length(); i++){
if(Character.getNumericValue(digits[i]) != 0){
if(((Integer.parseInt(number))% (Character.getNumericValue(digits[i]))) == 0){
sum++;
}
}
else
continue;
}
return sum;
}
}
Find Digits HackerRank Solution in Python
# Enter your code here. Read input from STDIN. Print output to STDOUT
inputLines = int(raw_input())
for i in range(inputLines):
total = 0
number = int(raw_input())
temp = number
while number > 0:
if number%10 != 0 and temp%(number%10)==0:
total += 1
number /= 10
print total
Find Digits HackerRank Solution in C#
using System;
using System.Collections.Generic;
using System.IO;
class Solution {
static void Main(String[] args) {
int T=Convert.ToInt32(Console.ReadLine());
for (int i=0;i<T;i++){
string broj=Console.ReadLine();
int N=Convert.ToInt32(broj);
int counter=0;
for (int j=0;j<broj.Length;j++){
int znamenka=Convert.ToInt32(broj.Substring(j,1));
if (znamenka!=0 && N%znamenka==0){
counter++;
}
}
Console.WriteLine(counter.ToString());
}
}
}
Attempt Find Digits HackerRank HackerRank Challenge
Link – https://www.hackerrank.com/challenges/find-digits/
Next HackerRank Challenge Solution
Link – https://exploringbits.com/extra-long-factorials-hackerrank-solution/
Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.