Algorithms and Data Structures

  • Profound Academy

    • Status
      • 1
        Implementation
      • 2
        Bitwise operations
      • 3
        Prefix Sums
      • 4
        Sliding window / Two pointers
      • 5
        Modular Arithmetic
      • 6
        Number Theory
      • 7
        Binary Search
      • 8
        Basic Sorting
      • 9
        Greedy Algorithms
      • 10
        Basic Dynamic Programming
      • 11
        Recursion
      • 12
        Linked LIst
      • 13
        Queue & Stack
      • 14
        Binary tree + BST
      • 15
        Divide & Conquer + Advanced Sorting
      • 16
        Heap
      • 17
        Hashing
      • 18
        Graph Representation
      • 19
        BFS

  • Checking for a full square

    It’s possible to do a binary search on any ordered list: be it a list of increasing heights, integer numbers, floating-point numbers, etc. It can even be the set of integers , the set of natural numbers , or the set of rational numbers . We would still pick a range of possible solutions and throw away the unnecessary part on each iteration.

    Challenge

    Given a positive integer n, you are asked to check if it’s a full square without using the sqrt function.

    Input

    The input contains a single integer n (2 ≤ n ≤ ).

    Output

    The program should print Yes if n is a full square and No otherwise.

    Examples

    Input
    Output
    9
    Yes
    8
    No
    16
    Yes
    26
    No
    Hint
    If n is a full square ⇒ there is another number x that . Therefore, you can try to find x on an interval [1, 2, …, n].
     
     

    Constraints

    Time limit: 1 seconds

    Memory limit: 512 MB

    Output limit: 1 MB

    To check your solution you need to sign in
    Sign in to continue