1 题目
判断并输出101到200之间的素数
注:想节约时间的可以直接看实现3
2 分析
本题的关键是输出素数,素数又叫质数,指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,必须为正整数,1和0既非素数也非合数,所以在写判断素数的函数时
- 第一步首先判断给的数是否大于2,若小于2,则直接判断为非素数,
- 第二步则用一个
for循环来对小于该数的各个数依次取余,若取余后等于0,则它不是素数,那么容易得出实现1,仔细想想可以发现,一个数去除以比它的一半还要大的数,一定是除不尽的,这用不着判断,所以要改进for循环中的循环控制语句,改为i < n/2 + 1,见实现2
那么还可以再优化吗?答案是可以的,在数学上有个规律,对于一个小于n的整数x,若n不能整除x,则n必定不能整数n/x,那么带来一个明显的优化就是循环控制语句从2到 n \sqrt{n} n即可,因为在判断2的同时也判断了n/2,循环到 n \sqrt{n}

本文详细解析了素数判断的基本原理及三种优化方法,从暴力遍历到仅判断至平方根,逐步提升算法效率,最后给出101到200间素数的输出实例。
最低0.47元/天 解锁文章
937





