本帖最后由 yangchuanju 于 2025-12-15 15:05 编辑
素数表逐级扩大的编制方法
已知一个小素数表,不能用累加法扩大,但已知一个小互素数表确能用累加法向后扩大。
在扩大后的互素数表中删除各个非素数后便得到扩大的素数表,可用素数阶乘逐级扩大。
30以内共有8个与30互素的互素数,其中素数7个;
210以内共有56个与30互素的互素数,48个与210互素的互素数,其中素数46个;
在由30向210扩展时,需要先用素数7筛一次,筛除7及7的倍数数,然其内还有11,13的倍数数,
48个与2,3,5,7互素的互素数中需去掉1,加上2,3,5,7,再减去11,13的倍数数5个,才能得46个素数。
待删5合数11*(11,13,17,19)+13*13
在由210向2310扩展时,先用素数11对与210互素的互素数筛一次,筛除11及11的倍数数,其内还有13,17,19…47的倍数数,
480个与2,3,5,7,11互素的互素数中需去掉1,加上2,3,5,7,11,再删除11,13,19,…47的倍数数,才能得有效的素数表。
待删二合数140个,三合数1个(13^3=2197)
再在由2310向30030扩展时,先用素数13对与2310互素的互素数筛一次,筛除13及13的倍数数,其内还有17,19…173的倍数数,
5240个与2,3,5,7,11,13互素的互素数中需去掉1,加上2,3,5,7,11,13,再删除13,19,…173的倍数数,才能得有效的素数表。
待删二合数2385个,三合数132个
继续由30030向17#扩展,先用素数17对与13#互素的互素数筛一次,筛除17及17的倍数数,其内还有19,23…709的倍数数,
在与2,3,5,…17互素的互素数中需去掉1,加上2,3,5,…17,再删除19,23,…709的倍数数,才能得有效的素数表。
继续由17#向19#扩展,先用素数19对与17#互素的互素数筛一次,筛除19及19的倍数数,其内还有23,…3109的倍数数,
在与2,3,5,…19互素的互素数中需去掉1,加上2,3,5,…19,再删除23,…3109的倍数数,才能得有效的素数表。
继续由19#向23#扩展,先用素数23对与19#互素的互素数筛一次,筛除23及23的倍数数,其内还有29,…14929的倍数数,
在与2,3,5,…23互素的互素数中需去掉1,加上2,3,5,…23,再删除29,…14929的倍数数,才能得有效的素数表。
就这样逐级向后扩大即可编制出非常大的素数表,但谁也无法编制出无限大的素数表!
|