Números Super-D

Dado un número entero N , la tarea es comprobar que N es un Número super-d.
 

Super-D Número es un número N tal que D*N D contiene una substring hecha de D dígitos que contienen solo D, donde D es mayor que 1 y menor que 10 
 

Ejemplos: 
 

Entrada: N = 261 
Salida: Sí 
Explicación: 
Será cierto para D = 3 
D*N D = 3*261 3 = 53338743 
que contiene una substring compuesta por 3 dígitos 333 que contiene solo 3.
Entrada: N = 10 
Salida: No 
 

Enfoque: la idea es crear todas las strings posibles concatenando el dígito D, D varias veces y luego verificar si la concatenación está presente como una substring en D*N D o no, donde D estará en el rango [2, 9] .
A continuación se muestra la implementación del enfoque anterior: 
 

Java

// Java implementation to
// check if N is a super-d number
class GFG{
     
// Function to check if N
// is a super-d number
static boolean isSuperdNum(int n)
{
    for (int d = 2; d < 10; d++)
    {
        String subString = newString(d);
        if (String.valueOf(
           (d * Math.pow(n, d))).contains(subString))
            return true;
    }
    return false;
}
 
// Driver Code
private static String newString(int d)
{
    String ans = "";
    for (int i = 0; i < d; i++)
    {
        ans += String.valueOf(d);
    }
    return ans;
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 261;
    if (isSuperdNum(n) == true)
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
 
// This code is contributed by Rajput-Ji

Python3

# Python3 implementation to
# check if N is a super-d number
 
# Function to check if N
# is a super-d number
def isSuperdNum(n):
    for d in range (2, 10):
        substring = str(d) * d;
        if substring in str(d * pow(n, d)):
            return True
    return False
 
# Driver Code
n = 261
if isSuperdNum(n) == True:
    print("Yes")
else :
    print("No")

C#

// C# implementation to
// check if N is a super-d number
using System;
 
class GFG{
     
// Function to check if N
// is a super-d number
static bool isSuperdNum(int n)
{
    for(int d = 2; d < 10; d++)
    {
       String subString = newString(d);
       if (String.Join("",
          (d * Math.Pow(n, d))).Contains(subString))
           return true;
    }
    return false;
}
 
private static String newString(int d)
{
    String ans = "";
     
    for(int i = 0; i < d; i++)
    {
       ans += String.Join("", d);
    }
    return ans;
}
 
// Driver Code
public static void Main(String[] args)
{
    int n = 261;
     
    if (isSuperdNum(n) == true)
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
}
}
 
// This code is contributed by Rajput-Ji
Producción: 

Yes

 

Complejidad de tiempo: O(1)

Referencias: OEIS
 

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *