- Published on

# Three Divisors.

**Problem of the day** - Three Divisors

**Tag** - Easy

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.

Just by looking at the problem, I figured out the algorithm.

The trick in this question is, as for each number, it would be divisible to 1 and the number itself. Which meas, We just have to check if its divisible by a perfect square.

`class Solution {public: bool isPrime(int n) { for(int i=2;i<n;i++) { if(n % i == 0) return false; } return true; } bool isThree(int n) { // checck the value of n if(n == 1) return false; int sq = sqrt(n); // perfect square and check of isPrime if(sq * sq == n && isPrime(sq)) return true; return false; }};`

I was going through the leetcode discussion tab and I found a great & smart approach for this problem.

If you feel, I am missing on something, feel free to reach out to me

I welcome your suggestions to improve it further!

Thanks for being part of my daily-code-workout journey. As always, if you have any thoughts about anything shared above, don't hesitate to reach out.

You might like previous editions of my coding diary