Algorithms and Data Structures

• 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
• 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