三除数
给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true ;否则,返回 false 。
如果存在整数 k ,满足 n = k * m ,那么整数 m 就是 n 的一个 除数 。
示例 1:
输入:n = 2
输出:false
解释:2 只有两个除数:1 和 2 。
示例 2:
输入:n = 4
输出:true
解释:4 有三个除数:1、2 和 4 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/three-divisors
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
无脑方法
class Solution {
public boolean isThree(int n) {
boolean flag = false;
int count = 0;
//找到除了1和本身之外的数
for(int i = 2;i< n;i++){
if(n%i==0)count++;
//如果多的除数,那么就不是三除数
if(count>1)return flag;
}
return count==1;
}
}
缩减遍历数组
class Solution {
public boolean isThree(int n) {
//除了1和本身之外,找到正除数,不能多于3
//这里有个隐藏提示:如果想把一个数除味0,那么这个数就要是它的一半或者以下
int count = 2;
for(int i=n/2;i>1;i--){
if(n%i==0){
count++;
}
}
if(count==3)return true;
return false;
}
}

浙公网安备 33010602011771号