小编Vai*_*ant的帖子

如何在数字的素数因子分解中找到素数的多重性?

我必须在所有数字中找到多个最小素数因子,直到10 ^ 7.我正在使用Eratosthenes的Sieve来找到所有素数.并且在一个单独的数组中,我存储了复合数的最小素因子.这是我的代码

 for(ull i=2;i<=m;i++)
{
    if (check[i])
    {
         uncheck[i]=true;
        for (ull k=i*i; k<=n; k+=i)
         {
           if(check[k]==true)
           phi[k]=g;
           check[k]=false;
         }  
    }

}
Run Code Online (Sandbox Code Playgroud)

现在我正在运行一个循环,直到n并在其中使用循环来计算它.这是代码

 for(ull i=4;i<=n;i++)
{

    if(check[i]==false)
    {   
        ull count=0; 
        ull l=i;
         ull r=phi[i];
         while(l%r==0)
         {
            l=l/r;
            count++;
         }               
        cout<<count<<'\n';
    }


}
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来计算这个?

c c++

-1
推荐指数
1
解决办法
452
查看次数

标签 统计

c ×1

c++ ×1