预处理找到前N个质数

    xiaoxiao2025-09-09  518

    较快的方法预处理找到前N个质数,质数最大不超过Max。

    int prime[N]; void getPrime() //预处理找出前几个质数 { for(int i=2;i<=Max;i++) { if(!prime[i])prime[++cnt]=i; //第cnt个质数 for(int j=1;j<=cnt&&prime[j]<=Max/i;j++) { prime[prime[j]*i]=1; //用当前的数乘以之前找到的所有质数来排除后面的合数。 if(i%prime[j]==0)break; //如果当前的数与之前的质数不互质则跳出 } } }
    转载请注明原文地址: https://ju.6miu.com/read-1302482.html
    最新回复(0)