leetcode题号1952。
题目意思是指给定一整数 n,求其整数因数,若恰好满足整数因数为3个,返回 ture,否则返回 false。
题解如下:
bool isThree(int n) {
int mid = 1;
for(int i = 1;i<n;i++)
{
if(n%i==0)
{
mid++;
if(mid>3)
return false;
}
}
return mid==3;
}
首先创建一个变量 mid ,用以记录有多少个整数因数,因为数字本身就是自己的因数,可以直接给mid = 1。
循环从1开始到n,由于mid=1所以无需再判断当 i == n 的情况了。
每循环一次判断n是否能被i除尽,即 n % i 是否为0,若是则说明 i 是n的一个整数因数,此时mid++记录次数。
若mid在循环未结束时已不满足 “ 恰好有三个正除数 ” 的条件,此时可在循环内直接返回 false。
循环走出后,需判断 mid 是否<3,若小于则返回 false,等于则返回 true。
由于返回类型为 bool,可直接return mid == 3。
至此,题解。