那个GlobalAlloc函数以前没用过,置0的速度比memset函数的速度快吗?				
			
		置0的速度不会比memset函数的速度快。windows下可以试试 VirtualAlloc . 
 GlobalAlloc基本上淘汰了。				
			
		 98# liangbch 
这个算法有点老了, 新的改进算法
"Computation of pitable(x): Improvement to THE MEISSEL, LEHMER, LAGARIAS,
MILLER, ODLYZKO METHOD Deleglise and Rivat method
用这个算法实现我的pi程序, 实现有点粗糙, 还有非常大的优化余地,
自我感觉1秒计算PI(1e12)是可行的。
pi(1e10) = 455052511, time use 125 ms
pi(1e11) = 4118054813, time use 1102 ms
pi(1e12) = 37607912018, time use 11349 ms				
			
		不知道楼上看的是不是这个
http://en.wikipedia.org/wiki/Prime-counting_function				
			
		我是不行的了。
不过如果是用巨型计算机来实现,算不算作弊?				
			
		在GMP下如果实现呢?				
			
		原来这么早就有讨论这玩意了,记录下!				
			
		圆周率314159是素数,圆周率100000000位内含有多少素数?(从314159........)
31415926535897932384626433832795028841也是素数。				
			
		我去看了看Atkin筛的原理,咋感觉不如咱这里讨论的分块筛法呢?				
			
		 本帖最后由 chyanog 于 2013-11-25 22:22 编辑 
Mathematica用筛法求10^8以内的素数 4s (CPU 2.1GHZ),比Prime@Range@PrimePi // Length // AbsoluteTiming要快,
参考了Matlab函数primes的算法,但比matlab的快点
primes := Block[{p = Range},
   p[] = 2;
   Do] != 0, p[] = 0], {k, 3,n^.5, 2}];
   SparseArray["NonzeroValues"]
   ];
primes // Length // AbsoluteTiming