查找质因数+质因数分解(欧拉筛法)

判断质因数:
void init()
{
    int r=0;
    for(ri i=2;i<=1e6;i++)
    {
        if(!isprism[i])
        {
            qu[++r]=i;
            isprism[i]=i;
        }
        for(ri j=1;j<=r&&qu[j]*i<=1e6;j++)
        {
            isprism[qu[j]*i]=qu[j];
            if(i%qu[j]==0) break;
        }
    }
    
View Code

质因数分解:

while(isprism[a])
    {
        int tmp=isprism[a];
        while(tmp==isprism[a])
        {
            a/=isprism[a];
        }
       // solve 
    }
View Code

 

posted @ 2022-03-26 10:57  VxiaohuanV  阅读(47)  评论(0编辑  收藏  举报