问题分析
如:整数 4,有1, 4, 2 共3个因子。
现在就是输入一个数num,求其因子数。
方法:判断数,如果数不为1,则其因子数起码有两个,(自身和1)
然后从i=2开始到sqrt(num)做循环,如果num%i==0,则因子数+2
当然如果两个因子数相同,是必须要去重的
思路优点
由于循环做的好,没有了类似于24 = 4*6 = 6*4的这种困扰
int num(int n) //返回的是因子总数
{
int count = 2;
for (int i = 2; i <= sqrt(n); i++)
{
if (n % i == 0)
{
if (i == sqrt(n) && n / i == i) //如果两因子相同,则只加1
{
count++;
}
else
{
count += 2;
}
}
}
return count;
}
版权声明:本文为GreatJames原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。