Encuentra el conteo de dígitos en un número que divide el número

Dado un entero positivo n . La tarea es encontrar el conteo de dígitos del número que divide uniformemente el número n.
Ejemplos: 
 

Input : n = 12
Output : 2
1 and 2 divide 12.

Input : n = 1012
Output : 3
1, 1 and 2 divide 1012.

La idea es encontrar cada dígito del número n por módulo 10 y luego verificar si divide n o no. En consecuencia, incremente el contador. Tenga en cuenta que el dígito puede ser 0, así que tenga cuidado con ese caso.
A continuación se muestra la implementación de este enfoque: 
 

C++

// C++ program to count number of digits
// that divides the number.
#include <bits/stdc++.h>
using namespace std;
 
// Return the number of digits that divides
// the number.
int countDigit(int n)
{
    int temp = n, count = 0;
    while (temp != 0) {
        // Fetching each digit of the number
        int d = temp % 10;
        temp /= 10;
 
        // Checking if digit is greater than 0
        // and can divides n.
        if (d > 0 && n % d == 0)
            count++;
    }
 
    return count;
}
 
// Driven Program
int main()
{
    int n = 1012;
 
    cout << countDigit(n) << endl;
    return 0;
}

Java

// Java program to count number of digits
// that divides the number.
 
class Test {
    // Return the number of digits that divides
    // the number.
    static int countDigit(int n)
    {
        int temp = n, count = 0;
        while (temp != 0) {
            // Fetching each digit of the number
            int d = temp % 10;
            temp /= 10;
 
            // Checking if digit is greater than 0
            // and can divides n.
            if (d > 0 && n % d == 0)
                count++;
        }
 
        return count;
    }
 
    // Driver method
    public static void main(String args[])
    {
        int n = 1012;
        System.out.println(countDigit(n));
    }
}

Python3

# Python3 code to count number of
# digits that divides the number.
 
# Return the number of digits
# that divides the number.
def countDigit (n):
    temp = n
    count = 0
    while temp != 0:
         
        # Fetching each digit
        # of the number
        d = temp % 10
        temp //= 10
     
        # Checking if digit is greater
        # than 0 and can divides n.
        if d > 0 and n % d == 0:
            count += 1
    return count
     
# Driven Code
n = 1012
print(countDigit(n))
 
# This code is contributed by "Sharad_Bhardwaj".

C#

// C# program to count number of digits
// that divides the number.
using System;
 
class GFG {
 
    // Return the number of digits that
    // divides the number.
    static int countDigit(int n)
    {
        int temp = n, count = 0;
        while (temp != 0) {
 
            // Fetching each digit of
            // the number
            int d = temp % 10;
            temp /= 10;
 
            // Checking if digit is
            // greater than 0 and can
            // divides n.
            if (d > 0 && n % d == 0)
                count++;
        }
 
        return count;
    }
 
    // Driver method
    public static void Main()
    {
        int n = 1012;
 
        Console.Write(countDigit(n));
    }
}
 
// This code is contributed by parashar.

PHP

<?php
// PHP program to count
// number of digits
// that divides the number.
 
// Return the number of
// digits that divides
// the number.
function countDigit($n)
{
    $temp = $n;
    $count = 0;
     
    while ($temp != 0)
    {
         
        // Fetching each digit
        // of the number
        $d = $temp % 10;
        $temp /= 10;
         
        // Checking if digit
        // is greater than 0
        // and can divides n.
        if ($d > 0 && $n % $d == 0)
        $count++;
    }
 
    return $count;
}
 
    // Driver Code
    $n = 1012;
    echo countDigit($n), "\n";
     
// This code is contributed by ajit
?>

Javascript

<script>
// javascript program to count number of digits
// that divides the number. 
// Return the number of digits that divides
    // the number.
 
function countDigit(n)
{
    var temp = n, count = 0;
    while (temp != 0)
    {
     
        // Fetching each digit of the number
        var d = temp % 10;
        temp /= 10;
 
        // Checking if digit is greater than 0
        // and can divides n.
        if (d > 0 && n % d == 0)
            count++;
    }
 
    return count;
}
 
// Driver method
var n = 1012;
document.write(countDigit(n));
     
// This code is contributed by Amit Katiyar
</script>

Producción: 
 

3

Complejidad de tiempo: O(d) donde d es el número de dígitos en un número.
Espacio Auxiliar: O(1)

Este artículo es una contribución de Anuj Chauhan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *