Search code examples
c++algorithmmathintegerinteger-arithmetic

Perfect square and perfect cube


Is there any predefined function in c++ to check whether the number is square of any number and same for the cube..


Solution

  • No, but it's easy to write one:

    bool is_perfect_square(int n) {
        if (n < 0)
            return false;
        int root(round(sqrt(n)));
        return n == root * root;
    }
    
    bool is_perfect_cube(int n) {
        int root(round(cbrt(n)));
        return n == root * root * root;
    }