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