Formatted question description: https://leetcode.ca/all/1952.html

# 1952. Three Divisors

## Level

Easy

## Description

Given an integer `n`

, return * true if n has exactly three positive divisors. Otherwise, return false*.

An integer `m`

is a **divisor** of `n`

if there exists an integer `k`

such that `n = k * m`

.

**Example 1:**

**Input:** n = 2

**Output:** false

**Explantion:** 2 has only two divisors: 1 and 2.

**Example 2:**

**Input:** n = 4

**Output:** true

**Explantion:** 4 has three divisors: 1, 2, and 4.

**Constraints:**

`1 <= n <= 10^4`

## Solution

If `n`

has three divisors, then `n`

must be a perfect square number. Calculate the square root of `n`

, and loop over all integers from 1 to the square root minus 1. For each `i`

such that `n`

is divisible by `i`

, add 2 to the number of divisors. The final divisor is the square root of `n`

. Return `true`

if the number of divisors equals 3.

```
class Solution {
public boolean isThree(int n) {
int sqrt = (int) Math.sqrt(n);
if (sqrt * sqrt != n)
return false;
int divisors = 1;
for (int i = 1; i < sqrt; i++) {
if (n % i == 0)
divisors += 2;
}
return divisors == 3;
}
}
```