Encuentre el número cuadrado perfecto de N dígitos más grande en la base B

Dados dos números enteros N y B , la tarea es encontrar los números de N dígitos más grandes de la Base B, que es un cuadrado perfecto.
Ejemplos:
 

Entrada: N = 2, B = 10 
Salida: 81 
Explicación: 
81 es el cuadrado perfecto de 2 dígitos más grande en base 10.
Entrada: N = 1, B = 8 
Salida:
Explicación: 
4 es el número octal de 1 dígito más grande que es también un cuadrado perfecto. 
 

Método: El mayor número N en base B viene dado por  B^N-1    . Entonces, si encontramos la raíz cuadrada de este número en forma de entero y luego tenemos que hacer su cuadrado nuevamente, entonces será el cuadrado perfecto más grande de N dígitos que está dado por la fórmula:  \left\lfloor\sqrt{B^N-1}\right\rfloor^2    .
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation to find Largest
// N digit perfect square number in Base B
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the
// largest N digit number
void nDigitPerfectSquares(int n, int b)
{
    // Largest n-digit perfect square
    int largest
        = pow(ceil(sqrt(pow(b, n))) - 1, 2);
 
    // Print the result
    cout << largest;
}
 
// Driver Code
int main()
{
    int N = 1, B = 8;
 
    nDigitPerfectSquares(N, B);
 
    return 0;
}

Java

// Java implementation to find largest N
// digit perfect square number in base B
import java.io.*;
import java.util.*;
 
class GFG {
     
// Function to find the
// largest N digit number
static double nDigitPerfectSquares(int n, int b)
{
     
    // Largest n-digit perfect square
    double largest = Math.pow(Math.ceil
                             (Math.sqrt
                             (Math.pow(b, n))) - 1, 2);
     
    // Print the result
    return largest;
}
 
// Driver code
public static void main(String[] args)
{
    int N = 1, B = 8;
    System.out.println(nDigitPerfectSquares(N, B));
}
}
 
// This code is contributed by coder001

Python3

# Python3 implementation to find the largest
# N digit perfect square number in base B
import math
 
# Function to find the
# largest N digit number
def nDigitPerfectSquares(n, b):
 
    # Largest n-digit perfect square
    largest = pow(math.ceil
                 (math.sqrt(pow(b, n))) - 1, 2)
 
    # Print the result
    print(largest)
 
# Driver Code
N = 1
B = 8
 
nDigitPerfectSquares(N, B)
 
# This code is contributed by divyamohan123

C#

// C# implementation to find largest N
// digit perfect square number in base B
using System;
 
class GFG {
     
// Function to find the
// largest N digit number
static double nDigitPerfectSquares(int n, int b)
{
     
    // Largest n-digit perfect square
    double largest = Math.Pow(Math.Ceiling
                             (Math.Sqrt
                             (Math.Pow(b, n))) - 1, 2);
     
    // Print the result
    return largest;
}
 
// Driver code
public static void Main(String[] args)
{
    int N = 1, B = 8;
     
    Console.WriteLine(nDigitPerfectSquares(N, B));
}
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
 
// Javascript implementation to find Largest
// N digit perfect square number in Base B
 
// Function to find the
// largest N digit number
function nDigitPerfectSquares(n, b)
{
    // Largest n-digit perfect square
    var largest
        = Math.pow(Math.ceil(Math.sqrt(Math.pow(b, n))) - 1, 2);
 
    // Print the result
    document.write(largest);
}
 
// Driver Code
var N = 1, B = 8;
nDigitPerfectSquares(N, B);
 
</script>
Producción: 

4

 

Complejidad de tiempo: O (logn)

Espacio Auxiliar: O(1)

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 *