最大因子(素数)模板

int mpf[N+1];       //mpf[i] = x,则x为i的最大因子(素数)
void maketable()                //求出每个数的最大因子
{
    int i,j;
    memset(mpf,0,sizeof(mpf));
    mpf[0]=0;
    mpf[1]=1;
    for(i=2;i<=N;i+=2)
        mpf[i]=2;               /* 对于偶数,令其因子暂时为2 */  
    for(i=3;i<=N;i+=2)            /* 对于素数i,设置j=k*i的暂时因子为i */ 
        if(0==mpf[i])
            for(j=i;j<=N;j+=i)
                mpf[j]=i;
}
题目参考链接 点击打开链接http://blog.csdn.net/qq_40679299/article/details/79245494

你可能感兴趣的:(模板)