回复 45楼 laowan001
CLEAR
CLOSE DATABASES
LOCAL kkk
SELECT 1
USE D:\标记法\数据源表.DBF ALIAS 数据源
SELECT 2
USE D:\标记法\素数表5万.DBF ALIAS 素数表参
SELECT 5
USE D:\标记法\素数表结果1.DBF ALIAS 素数表果
DELETE ALL
PACK
SELECT 素数 数据1 FROM 素数表果 WHERE 1=2 INTO CURSOR 数据a READWRITE
kssj = DATETIME()
FOR i=1 TO 2
SELECT 素数式+(i-1)*9699690 数据1,CAST(1 as INT) 数据mod FROM 数据源 INTO CURSOR 数据a READWRITE
SELECT 数据a
GO BOTTOM
&&1658880
Kf=INT(SQRT(数据1))
SELECT 2
kkk = 0
SCAN FOR RECNO()>8 AND 素参<=kf
IF RECNO()>kkk
WAIT TRANSFORM(RECNO()) WINDOW NOWAIT NOCLEAR
kkk = kkk + 10
ENDIF
UPDATE 数据a SET 数据mod=MOD(数据1,素数表参.素参) WHERE 数据mod>0
SELECT 2
ENDSCAN
INSERT INTO 素数表果 (素数) SELECT 数据1 FROM 数据a WHERE 数据mod>0
ENDFOR
USE IN 数据a
MESSAGEBOX( DATETIME()-kssj)
SELECT 素数表果
MESSAGEBOX( RECCOUNT())
BROWSE
我把程序复制,简单改了下(路径及字段名)。运算结果正确。用时610秒,看来电脑配置不行,运算有点慢。