Contar números hasta N que sean cuadrados perfectos y cubos perfectos

Dado un número N. La tarea es contar números totales debajo de N que son cuadrados perfectos y cubos de algunos números enteros.
Ejemplos: 

Input: N = 100
Output: 2
They are 1 and 64.

Input: N = 100000
Output: 6

Enfoque: Para que un número positivo dado N sea un cuadrado perfecto, debe satisfacer P 2 = N De manera similar, Q 3 = N para un cubo perfecto donde P y Q son algunos números enteros positivos. 
N = P 2 = Q 3 
Por lo tanto, si N es una sexta potencia, esto ciertamente funcionaría. Diga N = A 6 que se puede escribir como (A 3 ) 2 o (A 2 ) 3 .  
Por lo tanto, elija la sexta potencia de todos los enteros positivos que sean menores que N.
A continuación se muestra la implementación del enfoque anterior:  

C++

// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to return required count
int SquareCube(long long int N)
{
 
    int cnt = 0, i = 1;
 
    while (int(pow(i, 6)) <= N) {
        ++cnt;
        ++i;
    }
 
    return cnt;
}
 
int main()
{
    long long int N = 100000;
 
    // function call to print required answer
    cout << SquareCube(N);
    return 0;
}

Java

// Java implementation of the above approach
 
public class GFG{
 
    // Function to return required count
    static int SquareCube(long N)
    {
     
        int cnt = 0, i = 1;
     
        while ((int)(Math.pow(i, 6)) <= N) {
            ++cnt;
            ++i;
        }
     
        return cnt;
    }
     
    public static void main(String []args)
    {
        long N = 100000;
     
        // function call to print required answer
        System.out.println(SquareCube(N)) ;
    }
    // This code is contributed by Ryuga
}

Python3

# Python3 implementation of the
# above approach
 
# Function to return required count
def SquareCube( N):
 
    cnt, i = 0, 1
 
    while (i ** 6 <= N):
        cnt += 1
        i += 1
 
    return cnt
 
# Driver code
N = 100000
 
# function call to print required
# answer
print(SquareCube(N))
 
# This code is contributed
# by saurabh_shukla

C#

// C# implementation of the above approach
using System;
 
public class GFG{
  
    // Function to return required count
    static int SquareCube(long N)
    {
      
        int cnt = 0, i = 1;
      
        while ((int)(Math.Pow(i, 6)) <= N) {
            ++cnt;
            ++i;
        }
      
        return cnt;
    }
      
    public static void Main()
    {
        long N = 100000;
      
        // function call to print required answer
        Console.WriteLine(SquareCube(N)) ;
    }
}
 
/*This code is contributed by 29AjayKumar*/

PHP

<?php
// PHP implementation of the
// above approach
 
// Function to return required count
function SquareCube($N)
{
    $cnt = 0;
    $i = 1;
 
    while ((pow($i, 6)) <= $N)
    {
        ++$cnt;
        ++$i;
    }
 
    return $cnt;
}
 
// Driver Code
$N = 100000;
 
// function call to print required answer
echo SquareCube($N);
 
// This code is contributed by ita_c
?>

Javascript

<script>
// JavaScript implementation of the above approach
 
// Function to return required count
function SquareCube(N)
{
 
    let cnt = 0, i = 1;
    while (Math.floor(Math.pow(i, 6)) <= N)
    {
        ++cnt;
        ++i;
    }
    return cnt;
}
 
    let N = 100000;
 
    // function call to print required answer
    document.write(SquareCube(N));
 
// This code is contributed by Surbhi Tyagi.
</script>
Producción: 

6

 

Complejidad de tiempo: O(N 1/6 )

Espacio Auxiliar: O(1), ya que no se ha ocupado ningún espacio extra.

Publicación traducida automáticamente

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