题目如下:
这里面有部分代码比较有意思:
1,为何开始先遍历,最终值小于50000?
因为题目要求的右边与左边差小于 10^6 ,所以最多有10^3个素数,所以保存里面的素数数量大于1000,而50000的化里面有5千个素数,满足
2,这串代码啥意思?
找最大的起始点,先看右边部分,减1是有分两种情况
①当被除数能被除数除净时,此时分子减一 ,之后结果加1,值不会变
②当不能被除净,分子减一无影响,之后结果加1则会取到范围内恰好为b[i]整数倍的数
而当left非常小时,因为素数最小从2开始,所以最小取2
3,为何加 !=1
因为可能出现把1当作素数的情况
详细代码如下: