怎么确定素数的范围?
比如计算第1000个素数,首先确定素数的范围,然后根据筛法进行计算。
问题就是怎么确定筛法的范围那?
[解决办法]
i=1时 执行1次;i=2时 执行两次;.... ;i=h时执行h次 所以总执行 h*(h+1)/2 其中h为logn 以2为底,向下取整
[解决办法]
我知道我为什么错了
i不是从1,2,3...h 而是1 2 4 8...
设最终i=2^h 总次数应为2^0+2^1+2^2+...+2^h=2^(h+1)-1 h=logn 向下取整
当n刚好为2^h时 总次数为2n-1
总执行是h*(1+2(h次方))/2是不对的,自己验算n=1 n=2 n=4的情况 明显不对
再说 1+2(h次方)始终为奇数 当h也为奇数时(如h=1,3..) 根本不能整除2 显然是错的