按照理解先去找到每一个数的所有因子,同时将因子和计算出来
分别调用对应的因子和除其本身,比较是否小于2,如果小于,则统计该数;直到最后输出结果
找因子的过程,参考力扣做过的一道类似题。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 返回牛牛获得的快乐指数
* @param n int整型 题单里的题目数量
* @return int整型
*/
int kthFactor(int n) {
int count = 0, factor;
int sum=0;
for (factor = 1; factor * factor <= n; ++factor) {
if (n % factor == 0) {
sum += factor;
}
}
--factor;
if (factor * factor == n) {
--factor;
}
for (; factor > 0; --factor) {
if (n % factor == 0) {
sum += n / factor;
}
}
return sum;
}
int solve(int n) {
// write code here
int sums=0;
for(int i=1;i<=n;i++)
{
int x=kthFactor(i);
if(x/i<2)
sums+=i;
}
return sums;
}
};
越努力越幸运
分别调用对应的因子和除其本身,比较是否小于2,如果小于,则统计该数;直到最后输出结果
找因子的过程,参考力扣做过的一道类似题。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 返回牛牛获得的快乐指数
* @param n int整型 题单里的题目数量
* @return int整型
*/
int kthFactor(int n) {
int count = 0, factor;
int sum=0;
for (factor = 1; factor * factor <= n; ++factor) {
if (n % factor == 0) {
sum += factor;
}
}
--factor;
if (factor * factor == n) {
--factor;
}
for (; factor > 0; --factor) {
if (n % factor == 0) {
sum += n / factor;
}
}
return sum;
}
int solve(int n) {
// write code here
int sums=0;
for(int i=1;i<=n;i++)
{
int x=kthFactor(i);
if(x/i<2)
sums+=i;
}
return sums;
}
};
越努力越幸运
全部评论
(0) 回帖