Count numbers upto N which are both perfect square and perfect cube

24 Jun, 2022
Given a number N. The task is to count total numbers under N which are both perfect square and cube of some integers.Examples: 
Input: N = 100
Output: 2
They are 1 and 64.

Input: N = 100000
Output: 6
Approach: For a given positive number N to be a perfect square, it must satisfy P2 = N Similarly, Q3 = N for a perfect cube where P and Q are some positive integers. N = P2 = Q3 Thus, if N is a 6th power, then this would certainly work. Say N = A6 which can be written as (A3)2 or (A2)3. So, pick 6th power of every positive integers which are less than equal to N.Below is the implementation of the above approach:  
C++
Java
Python3
C#
PHP
Javascript
// C++ implementation of the above approach#include <bits/stdc++.h>using namespace std; // Function to return required countint 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 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 implementation of the# above approach # Function to return required countdef SquareCube( N):     cnt, i = 0, 1     while (i ** 6 <= N):        cnt += 1        i += 1     return cnt # Driver codeN = 100000 # function call to print required# answerprint(SquareCube(N)) # This code is contributed# by saurabh_shukla
// C# implementation of the above approachusing 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 implementation of the// above approach // Function to return required countfunction SquareCube($N){    $cnt = 0;    $i = 1;     while ((pow($i, 6)) <= $N)    {        ++$cnt;        ++$i;    }     return $cnt;} // Driver Code$N = 100000; // function call to print required answerecho SquareCube($N); // This code is contributed by ita_c?>
<script>// JavaScript implementation of the above approach // Function to return required countfunction 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>
6
 
Time Complexity: O(N1/6)
Auxiliary Space: O(1), since no extra space has been taken.
saurabh_shukla
ankthon
29AjayKumar
ukasp
subhammahato348
surbhityagi15
souravmahato348
maths-cube
maths-perfect-square
number-theory
Technical Scripter 2018
Mathematical
number-theory
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.