多面体、图与数论
VectorPaint 三十以内筛法:保留质数本人再逐轮划去倍数
用二至三十的固定格表追二三五三轮,区分首次划去、重复遇见与最后十个质数。
本文目录
本课用一张静态数格图演示埃拉托色尼筛法。重点是当前质数不能被当成自己的待删倍数,以及已经划掉的格可再次遇见却不重复计数;手工算法记录与VectorPaint的图形排版分开,不宣称应用带质数计算器。
建立二至三十的不重复数格
开一千六百乘一千二百横画布,排六列五行编号格,第一行二三四五六七,下一行八到十三,依次到最后一行二十六至三十,末格留空并写不在范围内。纸面先核从二到三十共有二十九个整数,不能因为版面三十格就顺手加上一或三十一。把数值文字、划去标记、保留圈与轮次说明分层,格位固定后不再重排,便于每轮对照同一号码。网格只组织阅读,算法判断由整数条件完成,不由颜色或格子位置决定。
先读筛法并声明一不在质数内
参照NIST埃氏筛条目,从二开始找未标整数,再处理其倍数。质数是大于一且正因子只有一与自身的整数,因此一不在本次数格,也不是筛后漏标的质数。先在旁注写范围含三十、起点含二,结果必须保留二这个最小质数。为避免语言歧义,把“划去倍数”具体写成当前质数之后的较大倍数,或者从平方起筛;不能字面上从一倍自身开始把刚找到的质数也划掉。
第一轮保二划十四个偶合数
把二圈成保留,再逐个划四、六、八、十、十二、十四、十六、十八、二十、二十二、二十四、二十六、二十八、三十,共十四格。每次从纸面清单回到格号,不凭“隔一格涂一个”的视觉节奏,因为跨行后列位关系会变化。四是二的平方,可在旁边标第一轮起点;二乘一对应二本人,不能删。先做一份仅第一轮的副本,后续叠加标记时仍能追回这十四次首次划去,而不是只能看到最后一堆叉号。
第二轮保三并分清新旧划去
下一个未标整数是三,圈出后从九起按三增加,遇九、十二、十五、十八、二十一、二十四、二十七、三十。十二、十八、二十四、三十已被处理质数二的第一轮划去;本轮首次新增只有九、十五、二十一、二十七四格。六也是三的较大倍数,但从三平方起筛时已由二处理,不会漏掉。用第二种线型表示本轮经过,再用小点标首次划去,避免把八次访问都当成八个新增合数。
第三轮保五只新增二十五
四已经划去,不能再把它当新的质数开启主轮;下一个未标的是五。保五,从五平方二十五起,在三十以内访问二十五和三十,后者已划过,本轮只新增二十五。五的较小倍数十、十五、二十也都早已被二或三处理。把二十五的因子五乘五写在旁边,说明它不该因为不是偶数且不被三整除就留在结果里。再检查五这个格没有误跟二十五一起被框成删除区,保留与划去符号需能明确分辨。
以平方上界解释何时停止
三十平方根介于五和六之间,所以处理完五后,下一未标七的平方四十九已超过上界,可以停止主筛。理由是若三十以内合数的两个因子都大于平方根三十,其乘积会大于三十,故至少一个较小质因子已经被二三五覆盖。这里不是说七不是质数,而是七不必再启动划倍数的轮次。停止条件写在算法栏,不能把“没地方再画”或“剩下看起来都是质数”当依据,也不要将平方根误写成三十除二。
结果按十个保留与十九个删除核
最后保留二、三、五、七、十一、十三、十七、十九、二十三、二十九,共十个。首次划去十四加四加一等于十九,十加十九正好是原二十九格,可与范围数量交叉核对。若得到九个,优先查二或五是否被误删;若得到十一个,查二十五是否漏掉。结果排序只在旁边清单做,原图格位不移动,否则轮次痕迹无法对回。不能把被划数字称为全部非质数,因为范围外的一以及零、负数没有被本图列入处理。
重开从三轮记录复算验收
保存退出再重开,先隐藏最终答案,只开第一轮核十四格,再叠第二轮核四个新点,最后叠处理质数五的第三轮标记核二十五,核全部轮数为三。重新抄出十个保留值,并核停止于七平方大于三十的条件。打开输出查看数值和叉号没有互相覆盖、末空格仍标范围外;未检格式继续留空。完成是别人能逐轮复现筛选与计数,不是应用自动给出质数表或进行无限范围验证。
相关教程与资料
VectorPaint 七十二因数树:保留重复质因数与叶乘积、VectorPaint 四阶拉丁方:分别检查每行每列的一到四。
资料核对:2026 年 11 月 14 日,VectorPaint 公开版本 1.0.8,最低要求 iOS / iPadOS 17.0。范围参照官方 App Store与Apple 公开查询。手工练习使用安装版本实际可见入口;外部演算、文字记录与示意不代表内置自动分析。本文没有逐项真机、私人文件或全部导出环境实测声明。