|

楼主 |
发表于 2021-5-31 18:51
|
显示全部楼层
SELECT 1
USE D:\二生素数分解\素数式23.DBF ALIAS 素数式23
SELECT 2
USE D:\二生素数分解\素数式29.DBF ALIAS 素数式29
kssj=SECONDS()
DIMENSION a(10)
m=0
For i=1 to 29
SELECT 1
GO 1
FOR j=1 TO 36495360
ss23=素式23
pdz=ss23+(i-1)*223092870 && pdz是判断值的缩写(速写)
IF MOD(pdz,29)=0 && 如果S被其中素数之一整除就跳过,什么也不做
ELSE &&否则执行第二步方案
m=m+1
@ 15,20 say m
IF MOD(m,10)>0
a(MOD(m,10))=pdz
&& @ 5,10 say a(MOD(m,10))
ELSE
a(10)=pdz
endif
IF MOD(m,10)=0
SELECT 2 &&打开盛放素数式的表
APPEND BLANK &&增加一条空记录
REPLACE 素式1 WITH a(1) &&将B值付给素数式
REPLACE 素式2 WITH a(2)&&将B值付给素数式
REPLACE 素式3 WITH a(3)&&将B值付给素数式
REPLACE 素式4 WITH a(4)&&将B值付给素数式
REPLACE 素式5 WITH a(5)&&将B值付给素数式
REPLACE 素式6 WITH a(6)&&将B值付给素数式
REPLACE 素式7 WITH a(7)&&将B值付给素数式
REPLACE 素式8 WITH a(8)&&将B值付给素数式
REPLACE 素式9 WITH a(9)&&将B值付给素数式
REPLACE 素式10 WITH a(10)&&将B值付给素数式
ENDIF
ENDIF
SELECT 1
SKIP
endfor
endfor
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这是用数组的一种尝试,虽然经过改动,能正常运行,也获得想要的结果,但是文件太大,已到达上限2G,停止了运行,所以还得改变方法,在获得二生相邻素数(P,P+42)上。 |
|