|

楼主 |
发表于 2021-7-13 19:16
|
显示全部楼层
LOCAL xjl,djl,ts,xss,dss,kssj,tj
CLEAR
SELECT 1
USE D:\二生素数中项合成\不能被广孪中合成的偶数.DBF ALIAS 广孪中素数对 &&素数对表结构:偶数、统计
SELECT 2
USE D:\二生素数中项合成\二生L18中项.DBF ALIAS 广孪中表
kssj=SECONDS()
FOR i=10001 to 50000
@ 3,6 say i
X=2*i &&这是在筛选四生素数置数,非寻找不能合成的偶数。
Y=X/2 &&求出偶数的中值
SELECT 2
LOCATE FOR 二18中>X
DO CASE
CASE EOF()
GO Bottom
CASE 二18中>X
SKIP -1
ENDCASE
xjl=1
djl=RECNO()
t=.T.
DO WHILE t
dss=二18中
GO xjl
xss=二18中
&&放在这里比较合适,这里原来显示小素数的值,去掉了。
IF xss<Y+1 OR dss>Y-1 &&判断跳出语句如果放在后面,有时出现一个重复素数对
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 OR dss<Y
SELECT 1
APPEND BLANK
REPLACE 偶数 WITH X
REPLACE 二生间距 WITH 18
ENDIF
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
其实有的程序,简单的改写一下,就能实现新功能,比如本程序,把exit跳出循环语句,改成累加计数s=s+1,就可以实现对偶数求素数对。 |
|