求一个数的因数个数模板(C++)

求一个数的因数个数模板(C++)

虽然师哥的博客有整理的但是还是自己搞一个更舒坦,嘻嘻

int count(int n)
{
     
    int s = 1;
    for(int i = 2 ; i * i <= n ; i++)
    {
     
        if(n % i == 0)
        {
     
            int a = 0 ;
            while(n % i == 0)
            {
     
                n /= i;
                a++;
            }
            s = s * (a+1) ;
        }
    }
    if(n > 1) s = s * 2;
    return s;
}

再来个 ll 版本的,省的以后再改了

ll count(ll n)
{
     
    ll s = 1;
    for(ll i = 2 ; i * i <= n ; i++)
    {
     
        if(n % i == 0)
        {
     
            ll a = 0 ;
            while(n % i == 0)
            {
     
                n /= i;
                a++;
            }
            s = s * (a+1) ;
        }
    }
    if(n > 1) s = s * 2;
    return s;
}

你可能感兴趣的:(模板,基础算法,素数筛,算法)