# 0367. Valid Perfect Square

<https://leetcode.com/problems/valid-perfect-square>

## Description

Given a **positive** integer *num*, write a function which returns True if *num* is a perfect square else False.

**Follow up:** **Do not** use any built-in library function such as `sqrt`.

**Example 1:**

```
**Input:** num = 16
**Output:** true
```

**Example 2:**

```
**Input:** num = 14
**Output:** false
```

**Constraints:**

* `1 <= num <= 2^31 - 1`

## ac1: Newton method

`r = (r + x / r) / 2`

```java
class Solution {
    public boolean isPerfectSquare(int num) {
        long r = num;
        while (r * r > num) {
            r = (r + num / r) / 2;
        }
        return r * r == num;
    }
}
```
