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

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 = 100Output:2 They are 1 and 64.Input:N = 100000Output:6

**Approach:** For a given positive number N to be a perfect square, it must satisfy P^{2} = N Similarly, Q^{3} = N for a perfect cube where P and Q are some positive integers.

N = P^{2} = Q^{3}

Thus, if N is a 6th power, then this would certainly work. Say N = A^{6} which can be written as **(A ^{3})^{2} or (A^{2})^{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++

`// 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>` |

**Output:**

6

**Time Complexity: **O(N^{1/6})

**Auxiliary Space: **O(1)