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.

    給予一個整數 n,如果 n 剛好有三個正因數,則回傳 true,否則回傳 false。
    如果存在一個整數 k,且 n = k * m,則整數 m 是 n 的因數。
    

    Example 1:

    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.
    

    Solution:
    這題題目要求要判斷有三個正因數,也就是符合這個數值特性 `1, √n, n` 三個正因數。
    通常一個數字會有 1 與 n 本身,0 除外。
    我們先取得 √n,並且確認 √n * √n 是否等於 n ,以此判斷是否為整數平方數。
    接著我們遍歷 2 -> n 之間的數值,因為 0 不是正因數,1 已在正因數的計算內,
    接下來我們確保 n 是否會被這些數值整除,
    以此判斷他是否為質數,且該數大於 0,則為答案 true。

    Code 1: BigO(√√n)

    function isThree(n: number): boolean {
        let sqrt: number = Math.floor(Math.sqrt(n));
        if (sqrt * sqrt !== n) return false;
        for (let i = 2; i * i <= sqrt; i++) {
            if (sqrt % i === 0) return false;
        }
        return sqrt > 1;
    };
    

    Code 2: BigO(n)

    function isThree(n: number): boolean {
        let count: number = 0;
        for (let i = 1; i < n; i++) {        
            if (n % i === 0) {
                count++;
            } 
        }
        return count === 3; 
    };
    

    FlowChart:
    Example 1

    Input: n = 2
    
    sqrt 1 //取整數平方根
    sqrt * sqrt = 1,  n = 2
    return false;
    

    Example 2

    Input: n = 4
    
    sqrt 2
    sqrt * sqrt 4 n 4
    return sqrt > 1 // true