level 5
primes[n_] := Module[{p = Range[1, n, 2]}, p[[1]] = 2;
Do[If[p[[(k + 1)/2]] != 0, p[[(k^2 + 1)/2 ;; -1 ;; k]] = 0], {k, 3,
n^.5, 2}]; SparseArray[p]["NonzeroValues"]];
str = "C:\\Users\\chen\\Desktop\\rime within 10^8.txt";
BinaryWrite[str, primes[10^8], "Integer32"] // AbsoluteTiming
Close[str];
BinaryReadList[str, "Integer32"] // Length // AbsoluteTiming
BinaryReadList[str, "Integer32"] == primes[10^8]
部分代码抄自@妙谛莲花,可以看到二进制存储写入写出文件几乎没花时间。二进制文件只是无法用txt打开文件。不过至少c++是支持二进制文件读取写入的。所以可以考虑一下二进制文件。
2015年10月10日 15点10分
