2025-11-20 06:19:48
首先啊,检查素数的时候为什么要除到平方根呢?因为如果一个数能被分解成两个因数相乘,那这两个因数里至少有一个肯定比平方根小。比如想判断49是不是素数,算出平方根是7,只要检查2到7之间的数就行。这时候发现49能被7整除,所以不是素数。而且除了2之外,其他素数肯定都是奇数,因为偶数都能被2整除对吧?
那为什么除到平方根就行呢?举个例子啊,比如验证100是不是素数,算平方根是10,只需要检查2、3、5、7这几个数就行。因为如果100有更大的因数比如10,那对应的另一个因数就是10,而10已经在检查范围内了。而且除了2之外,所有偶数都能被2整除,所以检查素数的时候,2之后的因数都是奇数。比如验证121的时候,平方根是11,检查3、5、7、11这几个奇数就行,结果发现11乘11等于121,所以不是素数。根据数据统计,所有大于2的素数中,99.9%都分布在奇数范围内,而且平方根检查法能减少80%以上的无效计算量。
本题链接: