int fac[10000];
int fre[10000];
const int mode=9901;
int work_quality_factor(int n)
{
    int res,temp,i;
    res=0;
    temp=n;
    for(i=2;i*i<=temp;i++)
        if(temp%i==0)
        {
            fac[res]=i;
            fre[res]=0;
            while(temp%i==0)
            {
                temp=temp/i;
                fre[res]++;
            }
            res++;
        }
    if(temp>1)
    {
        fac[res]=temp;
        fre[res++]=1;
    }
    return res;
}
//res是质因数个数减一,fac[]是质因数数组,fre[i]是对应fac[i]的出现次数

发表评论

邮箱地址不会被公开。 必填项已用*标注