每日一题-20240126

题目描述

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 <= 104

解题思路

给定一个正整数 n,如任意一个小于 n 的正整数 i,满足 n % i == 0,则 i 是 n 的正除数。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Solution1952 {
/**
* 思路
* 给定一个正整数 n,如任意一个小于 n 的正整数 i,
* 满足 n % i == 0,则 i 是 n 的正除数
*
* @param n
* @return boolean
* @author Forest Dong
* @date 2024/01/25 21:05
*/
public static boolean isThree(int n) {
if (n < 4) {
return false;
}
int count = 1;
for (int i = 2; i <= n; i++) {
if (0 == n % i) {
count ++;
}
if (count > 3) {
return false;
}
}
return 3 == count;
}

public static void main(String[] args) {
System.err.println(isThree(4));
}
}