求一个数的因子个数

问题分析


如:整数 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版权协议,转载请附上原文出处链接和本声明。