欢迎使用CSDN-markdown编辑器

void Init(){
    for(int i=2;i<=lim;i++){
        if(!mk[i]){
            pri[++psz]=i;
            phi[i]=i-1;
        }
        for(int j=1,k;j<=psz;j++){
            k=pri[j];
            if(i*k>lim)break;
            mk[i*k]=1;
            if(i%k==0){
                phi[i*k]=phi[i]*k;
                break;
            }else phi[i*k]=phi[i]*phi[k];
        }
    }
}

你可能感兴趣的:(欢迎使用CSDN-markdown编辑器)