和朴素的素数筛法一样,flag数组,记录x是否为素数 flag[x]=0,x为合数 falg[x]=1,x为素数 flag[1],无定义 其核心思想是,用x筛除与之差异最小的y,达到时间上O(n)的目的 何为差异最小,呢? 基于唯一分解定理,我们认为,x的素数分解集合(是可重集) 大小记为|x|,如果|x|+1=|y|,我们则认为x,y差异最小 即此时用x筛去y 更重要的一点: )break; 什么意思呢? 可以这样理解,此时的break是为了下一次筛(暂时的失败是为了下一次更好的成功) 应为,…