40000000以内耗时173s,破电脑就这速度。
用数组应该可以算到超过1亿内,每个数组中元素的最大数目 一般: 2G 字节、成员数组: 2G 字节
程序代码:
用数组应该可以算到超过1亿内,每个数组中元素的最大数目 一般: 2G 字节、成员数组: 2G 字节
程序代码:t = SECONDS()
N = 40000000
DIMENSION arr[N,1]
arr = .T.
i = 2
DO WHILE i<=N
FOR j=i+i TO N STEP i
arr[j] = .F.
ENDFOR
j = i+1
DO WHILE j<=N AND !arr[j]
j = j+1
ENDDO
i = j
ENDDO
CREATE CURSOR tt (bol L, num I)
INSERT INTO tt FROM ARRAY arr
REPLACE ALL num WITH RECNO()
SELECT num FROM tt WHERE bol AND RECNO()>1 INTO TABLE 素数表
? SECONDS()-t && N=20000000 - 87s, N=40000000 - 173s







