|

楼主 |
发表于 2019-9-26 14:57
|
显示全部楼层
SELECT 1
USE F:\最密k生素数\最密素数式位置.dbf ALIAS 密素数式位
SELECT 2
USE F:\最密k生素数\余数表.dbf ALIAS 余表
SELECT 3
USE F:\最密k生素数\素数表万内.dbf ALIAS 素表
SELECT 4
USE F:\最密k生素数\符合条件的最密素数式.dbf ALIAS 符合素数式
SELECT 5
USE F:\最密k生素数\t23素数式.dbf ALIAS 素数式23表
kssj=SECONDS() &&取出开始时间
SELECT 4
delete all
pack
K=113 &&给k赋值
T=631734 &&给出外循环值
FOR I=1 TO T
@ 5,12 say I
SELECT 1
go I
j=位置
SELECT 3
go 1
FOR N=1 TO 1220
SELECT 3
E=素数
SELECT 2
delete all
pack
SELECT 5
go j
A=素数式23
FOR M=1 TO K
SELECT 5
B=素数式23
C=B-A
F=MOD(C,E)
SELECT 2
count all for F=余数 to js
IF js=0
SELECT 2
APPEND BLANK
REPLACE 余数 WITH F
ENDIF
SELECT 5
SKIP
ENDFOR
SELECT 2
G=RECCOUNT(2)
IF G=E
EXIT
ENDIF
SELECT 3
SKIP
ENDFOR
IF N>1220
SELECT 5
go j
FOR L=1 TO k
D=RECNO()
C=素数式23
SELECT 4
APPEND BLANK
REPLACE 素数式 WITH C
SELECT 5
GO D+1
ENDFOR
endif
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这是一个与上楼多少进步一点的程序,它省去了把间距相同的k生素数式先导出去的那一步,而是直接从至23素数式中筛选符合条件的k生素数式,之所以,做如此的变动,是因为,如果把k生素数式导出来,新表的记录条已经大大超限,不得已而为之。 |
|