C语言求素数算法,有几种方法可以降低时间复杂度

b可以非常大的时候,输出a到b之间素数的个数,怎么才能简化算法,降低运行时间

采用列表法,每次找到新的素数,添加到表中。每次寻找素数,不用每个数字都尝试一次,而只要尝试小于这个数字的1/2的所有素数就可以了。

具体做法

http://blog.csdn.net/liukehua123/article/details/5482854

不需要b的1/2,只需要判断到b的根号2

http://zhidao.baidu.com/link?url=ywMIfPtZOIuGxf0PF-p6LK5CJ8tZeiVoTYBsV2vwbGlTbFShHDB-25yQCo7aZtWsli1AbJJaA-EANOUxi2O47ew06vb77G3ySn81pspV3Si