「每日LeetCode」2021年8月15日

本文最后更新于:2023年3月19日 晚上

Lt1952. 三除数

1952. 三除数

给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true;否则,返回 _false
如果存在整数 k ,满足 n = k * m ,那么整数 m 就是 n 的一个 除数
示例 1:

1
2
3
输入:n = 2
输出:false
解释:2 只有两个除数:12

示例 2:

1
2
3
输入:n = 4
输出:true
解释:4 有三个除数:124

提示:

  • 1 <= n <= 10

思路

其实只要判断 n 是否是质数的平方即可,因为输入数字小于 1000,所以只要遍历 100 内的质数,判断其中是否存在平方等于 n 的数返回即可。

解答

1
2
3
4
5
6
7
8
9
10
11
12
/**
* @param {number} n
* @return {boolean}
*/
var isThree = function (n) {
const primeArr = [
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
73, 79, 83, 89, 97,
];
for (const num of primeArr) if (num ** 2 === n) return true;
return false;
};