1952. 三除数

题目

给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true ;否则,返回 false

如果存在整数 k ,满足 n = k * m ,那么整数 m 就是 n 的一个 除数

示例1:

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

示例2:

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

提示:

  • 1 <= n <= 10^4

解法

解法一:

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public boolean isThree(int n) {
Set<Integer> set = new HashSet<>();
int board = (int) Math.sqrt(n);
for (int i = 1;i <= board;i++) {
if (set.contains(i)) {
continue;
}
if (n % i == 0) {
set.add(i);
set.add(n / i);
if (set.size() > 3) {
return false;
}
}
}
return set.size() == 3;
}
0%