素数筛相关

求一个数的素因数

cnt=0; //素因子个数
for(int i=2;i*i<=n;i++)//这里是i²啊!
{
        if(n%i==0)
        {
            ++cnt;
            p[cnt]=i;//p数组存素因子
            num[cnt]=0;//num数组:每个素因子的指数,此处是初始化为0
            while(n%i==0)
            {
                ++num[cnt];
                n/=i;
            }
        }
}
if(n>1)
{
     ++cnt;
     p[cnt]=n;
     num[cnt]=1;
}

你可能感兴趣的:(素数筛相关)