【C语言】输出范围内所有素数时,时间复杂度优化问题
素数:只能被1和它本身整除的数,也叫 质数
要输出范围内所有的质数,首先要给定范围,例:100 ~ 200 之间
由此,一般最外层循环条件为:
for(i = 100; i < 201; i++)
但是,偶数不可能是质数,所以可以进行第一次优化:
for(i = 101; i < 201; i += 2) //i += 2 == i = i + 2
//由 奇数 加 2的方式 排除范围内所有偶数
接下来判断 i 是否为素数,需用 i % 1 ~ i 之间的所有数:
int flag = 1; //由标志变量 flag 是否为1 判断 i 是否为素数
for (n = 2; n < i; n++) //2 ~ i-1
{
if