回复 45楼 laowan001
CLEAR
SELECT 1
USE D:\标记法\数据源表.DBF ALIAS 数据源
SELECT 2
USE D:\标记法\素数表5万.DBF ALIAS 素数表参
SELECT 3
USE D:\标记法\数据表a.DBF ALIAS 数据a
SELECT 5
USE D:\标记法\素数表结果.DBF ALIAS 素数表果
kssj=SECONDS()
FOR i=7 TO 8
@12,10 SAY i
SELECT 3
DELETE ALL &&因为此表将写入新的数据,所以提前清空数据,即记录条值
PACK
SELECT 1
GO 1
FOR j=1 TO 1658880
sss=素数式
dclz=sss+(i-1)*9699690 &&dclz是待处理值
SELECT 3
APPEND BLANK
REPLACE 数据1 WITH dclz
SELECT 1
SKIP
ENDFOR
SELECT 3
GO 1658880
bpz=数据1
Kf=INT(SQRT(bpz))
GO 1
SELECT 2
GO 1
COUNT ALL FOR 素参<=kf TO jlh && jlh=RECNO()
xhcs=jlh-8 &&xhcs是循环次数的简写(第一个字母代替)
SELECT 2
GO 9
FOR k=1 TO xhcs
sc=素参
SELECT 3
jlts1=RECCOUNT() &&把数据a表中的记录条总数赋给变量:jlts1
GO 1
FOR h1=1 to jlts1
sj1=数据1
ys1=MOD(sj1,sc)
IF ys1=0
SELECT 3
DELETE next 1
ENDIF
SELECT 3
SKIP
ENDFOR
SELECT 3
PACK
SELECT 2
skip
ENDFOR
SELECT 3
jlts2=RECCOUNT() &&把数据a表中的记录条总数赋给变量:jlts1
GO 1
FOR h2=1 to jlts2
sj2=数据1
SELECT 5
APPEND BLANK
REPLACE 素数 WITH sj2
SELECT 3
SKIP
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
在您的提示下,对我原来的做了修改(主循环体),用时25分7.25秒,比不上先生的,不知道那里浪费了时间,记录条数:1076003.