题目
求100以内质数的个数? 🔯质数、一个问题的数学方法、、〚260621〛100以内质数的个数
解答
基础分析
- 方法1,一个一个的找。这个方法中“判断是否是质数”有数学的影子,这个方法本身不太体现数学。
- 方法2,尝试用对偶排除法做计算
计算过程并非所有问题,都有漂亮的数学方法。有的根本也没有太好的方法,有的有方法但也有点蹩脚,有的有理想的数学方法。这个问题属于第2种情况,有方法,但不完美略蹩脚。好歹,里面有数学的影子,且有自己的价值(当范围扩大,能大大减少计算量)
指向原始笔记的链接
计算方法
- 首先,把以下117个倍数去掉 2的倍数50个 3的倍数33个 5的倍数20个 7的倍数14个
- 其次,把以下45个倍数加回来 2×3、2×5、2×7的倍数,16+10+7=33个 3×5、3×7的倍数,6+4=10个 5×7的倍数加回来,2个
- 然后,把以下6个倍数减掉 2×3×5的倍数,3个 2×3×7的倍数,2个 2×5×7的倍数,1个
- 最后 把“2、3、5、7”加上,4个 把“1”减掉,1个
- 算式:100-117+45-6+4-1=25
一点解释
- 2、3、5、7的倍数117个,超过100个。这是好事,提醒我们事情没完。
- 为什么不减11的倍数? 因为11×11>100,故100以内,如果一个数是11的倍数,那么一定是比11小的2、3、5、7某个数的倍数。这在 判断质数的方法 - 清晰、准确、简洁 🆗 中有说明。
- 为什么要加回 2×3、2×5…等倍数? 这里加回的,都是“质数×质数”的这类合数的倍数。比如2×3=6,6的倍数在2的倍数里减了一遍,在3的倍数里也减了一遍。即上面117=50+33+20+14中,6的倍数是有被重复计算的(因此才出现超过100。,考虑到多减了2次,故需要加回来1次。
- 为什么2×3×5、2×3×7…等倍数需要再减一次? 这里是“质数×质数×质数”的倍数,比如A×B×C,它的倍数,①在A的倍数里减了1次,②在B的倍数里减了1次;③在C的倍数里减了1次;④A×B的倍数里加回1次;⑤A×C的倍数里加回1次;⑥C×B的倍数里加回1次。此时,加减情况是:-1-1-1+1+1+1=0,没有减掉,因此需要减1次。
- 为什么不考虑“质数×质数×质数×质数”的情况 因为不会出现这种情况,因为最小的2×3×5×7已经大于100了。
- 为什么单独加一次“2、3、5、7”? 最后算式100-117+45-6+4-1中的“+4”可以避免,比如“2的倍数50个,换成2的倍数但不是1倍,49个;3的倍数但不是1倍,32个…”,这样,最后算式中就不用“+4”这一步。 但是,这样处理并不好。 请关注现有的数据 5的倍数,20个; 2×5的倍数,10个(=20÷2); 2×3×5的倍数3个(=10÷3); 在需要的数据中,存在清晰的关联。如果我们寻找1000以内质数个数,10000以内质数个数,这个“关联”会带来计算上的遍历。在一个问题中,但凡存在清晰、明确的逻辑关系,就尽量不要打破它,小心的维护它,利用它。这本身体现的是 约束思想,相互的之间的约束关系、逻辑关系,是一份财富。另外,要对解决问题的细节保持敏感,这是数学里最奥妙的地方,细节见功夫。
计算思想
- 容斥原理,以上求解,主要借助这个思想
- 用一个文氏图(容斥图)说明

- 为了更容易理解,看看10以内的质数个数
算式:10-(2+3+5)+(1+1+0)-(0)+3-1=4个
这个问题,知识上并没有超出小奥的范围,主要应用就是容斥原理。
这个问题,最大难点是:容易心里上被问题吓住;其次,是对容斥原理并没有掌握到灵活应用的成都(这正常)
因此,这个问题,不是小学生的常规要求。但它是一个很好的检验,去看到“原来数学知识可以掌握到一个什么程度“。也是一个学生,是否适合严肃数学竞赛的试金石——不要求完整做出来,要求是:能有种感觉,这类题,是自己的菜。
附注
☆☆☆☆💯🏅👍🙇✶✷✸✹✺ 创建时间: 2026-06-21 11:42