|
* 以大定小选配素数对
LOCAL xjl,djl,ts,xss,dss,kssj,tj
CLEAR
SELECT 1
USE D:\vfp温习\L6三生素数42不能合成偶数表.DBF ALIAS 素数对 &&素数对表结构:偶数、统计
SELECT 2
USE D:\vfp温习\L6三生素数42表新.DBF ALIAS 三素数表
kssj=SECONDS()
FOR n=10 to 10000
@ 3,6 say n
FOR M=20 TO 32 step 6
X=M+n*30
Y=X/2 &&求出偶数的中值
SELECT 2
LOCATE FOR 三中42>X
DO CASE
CASE EOF()
GO Bottom
CASE 三中42>X
SKIP -1
ENDCASE
xjl=1
djl=RECNO()
t=.T.
DO WHILE t
dss=三中42
GO xjl
xss=三中42
&&放在这里比较合适,这里原来显示小素数的值,去掉了。
IF xss<Y+2 OR dss>Y-2 &&判断跳出语句如果放在后面,有时出现一个重复素数对
t=.T.
ELSE
t=.F. &&跳出命令
ENDIF &&结束判断
DO CASE
CASE xss+dss>X
GO djl
SKIP -1
djl=RECNO()
CASE xss+dss=X
EXIT
CASE xss+dss<X
GO xjl
SKIP
xjl=RECNO()
GO djl
ENDCASE
ENDDO
IF xss>=Y-1 OR dss<=Y+1
SELECT 素数对
APPEND BLANK
REPLACE 偶数 WITH X
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这是搜寻不能有三生素数(P,P+4,P+6)的中项和合成的偶数程序。 |
|