注册 登录
编程论坛 VFP论坛

简单的筛选二生素数程序

独木星空 发布于 2025-03-18 08:13, 758 次点击
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\二生素数jg20.DBF ALIAS 二生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=20
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ers20 WITH A+10   &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
45 回复
#2
csyx2025-03-18 09:58
百度了一下,大概就是孪生数吧,如果是找两两相差定值的孪生数,一条语句就足够了

*-- 创建100以内的素数表
Create cursor pr(rowid I, val I)
pr = '2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97'
For ii = 1 to ALines(ap, pr, 1+4, ',')
    Insert into pr values (ii, Val(ap[ii]))
EndFor

*-- 找出相差 n 的素数对
n = 2
Select a.val, b.val from pr a ;
    inner join pr b on a.rowid = b.rowid - 1 ;
    where a.val + n == b.val

#3
独木星空2025-03-18 11:40
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\三生素数jg20.DBF ALIAS 三生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 2
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=20
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE sss20 WITH A+10     &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
照猫画虎,简单修改
#4
独木星空2025-03-18 11:42
回复 2楼 csyx
一个字,牛,简明扼要。
#5
独木星空2025-03-18 14:24
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\四生素数jg20.DBF ALIAS 四生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 3
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=20
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ssss20 WITH A+10  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
简单 复制品
#6
独木星空2025-03-18 17:04
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\五生素数jg20.DBF ALIAS 五生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 4
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=20
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE wss20 WITH A+10  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
仍就是简单的复制品  
#7
独木星空2025-03-18 17:05
当然它们各自完成的任务不同
#8
独木星空2025-03-18 23:13
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\六生素数jg20.DBF ALIAS 六生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 5
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=20
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE lss20 WITH A+10  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#9
独木星空2025-03-19 12:23
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\二生素数jg22.DBF ALIAS 二生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=22
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ers22 WITH A+11   &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#10
独木星空2025-03-19 18:20
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\四生素数jg22.DBF ALIAS 四生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 3
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=22
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ssss22 WITH A+11  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
正在制作10亿内的二生素数数据(从2-30的间距)
#11
独木星空2025-03-19 23:51
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\五生素数jg22.DBF ALIAS 五生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 4
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=22
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE wss22 WITH A+11  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#12
独木星空2025-03-19 23:52
不存在七生素数总跨距为22的、
#13
独木星空2025-03-20 19:27
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\三生素数jg26.DBF ALIAS 三生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 2
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=26
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE sss26 WITH A+13    &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#14
独木星空2025-03-21 05:54
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\四生素数jg26.DBF ALIAS 四生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 3
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=26
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ssss26 WITH A+13 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#15
独木星空2025-03-21 09:29
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\五生素数jg26.DBF ALIAS 五生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 4
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=26
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE wss26 WITH A+13  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#16
独木星空2025-03-21 12:49
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\六生素数jg26.DBF ALIAS 六生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 5
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=26
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE lss26 WITH A+13  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#17
独木星空2025-03-21 16:16
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\七生素数jg26.DBF ALIAS 七生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 6
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=26
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE qss26 WITH A+13  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#18
独木星空2025-03-21 23:00
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\八生素数jg26.DBF ALIAS 八生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 7
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=26
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE bss26 WITH A+13  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#19
独木星空2025-03-22 09:36
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\二生素数jg28.DBF ALIAS 二生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=28
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ers28 WITH A+14  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#20
独木星空2025-03-22 13:31
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\三生素数jg28.DBF ALIAS 三生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 2
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=28
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE sss28 WITH A+14    &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#21
独木星空2025-03-22 19:03
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\四生素数jg28.DBF ALIAS 四生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 3
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=28
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ssss28 WITH A+14 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#22
独木星空2025-03-23 00:59
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\五生素数jg28.DBF ALIAS 五生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 4
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=28
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE wss28 WITH A+14  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#23
独木星空2025-03-23 10:00
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\六生素数jg28.DBF ALIAS 六生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 5
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=28
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE lss28 WITH A+14 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#24
独木星空2025-03-23 13:08
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\七生素数jg28.DBF ALIAS 七生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 6
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=28
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE qss28 WITH A+14  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#25
独木星空2025-03-23 18:29
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\八生素数jg28.DBF ALIAS 八生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 7
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=28
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE bss28 WITH A+14  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#26
独木星空2025-03-23 23:44
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\二生素数jg30.DBF ALIAS 二生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ers30 WITH A+15  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#27
laowan0012025-03-24 09:07
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\二生素数jg30.DBF ALIAS 二生素数表
kssj=SECONDS()
SELECT  1    && 等价于  SELECT 素数表
GO 1

如果都用SELECT 1这样的方法,那就没必要在打开表的时候指定别名了
#28
trial032025-03-24 09:37
学习了。 谢谢。
#29
独木星空2025-03-24 12:37
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\三生素数jg30.DBF ALIAS 三生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 2
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE sss30 WITH A+15   &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#30
独木星空2025-03-24 19:48
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\四生素数jg30.DBF ALIAS 四生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 3
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ssss30 WITH A+15 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#31
独木星空2025-03-25 06:18
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\五生素数jg30.DBF ALIAS 五生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 4
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE wss30 WITH A+15  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#32
独木星空2025-03-25 10:38
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\六生素数jg30.DBF ALIAS 六生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 5
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE lss30 WITH A+15 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#33
独木星空2025-03-25 14:33
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\七生素数jg30.DBF ALIAS 七生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 6
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE qss30 WITH A+15 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#34
独木星空2025-03-25 18:45
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\八生素数jg30.DBF ALIAS 八生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 7
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE qss30 WITH A+15 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#35
独木星空2025-03-25 18:56
“REPLACE qss30 WITH A+15 &&将N值付给素数式(此行)qss30没有做相应更改,应改成:bss30 。  当更改后,还是运行中断,原因是建表时:字段名bss不全,忘记加30,正确是bss30
#36
独木星空2025-03-25 22:32
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\九生素数jg30.DBF ALIAS 九生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 8
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE jss30 WITH A+15 &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#37
独木星空7 天前 00:42
SELECT 1
USE D:\素数式系数\二生素数表名称.DBF ALIAS 二素表名
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 59
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    bmc=表名称
               && mc="&bmc."
    zdm=表字段
   
        SELECT 2
        USE "&bmc."
        SELECT 3
         USE D:\素数式系数\二生素数统计表.DBF ALIAS 统计表
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 表索引 WITH "&bmc"      &&将N值付给素数式
         SELECT 2
            FOR j=1 TO 9   
            k=10^j
            h=j
                       && PUBLIC zd
            SELECT 2
            COUNT ALL FOR &zdm.<k TO tj
            cc="十"+transform(h)+"次"
                          
                          SELECT 3
                        
                          REPLACE &cc. WITH tj        &&将N值付给素数式
                          
           ENDFOR
       SELECT 3
       SKIP
      
   SELECT 1
   GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
试验了两三天,今天终于完成任务(2025年3月29日0:42)
#38
独木星空7 天前 15:26
宏替换后,是作为变量用,还是字符串文本用,很重要。
#39
独木星空7 天前 21:04
ELECT 1
USE D:\素数式系数\素数式23.DBF ALIAS 素数式
kssj=SECONDS()
SELECT  1
GO 1
 E=1000
For i=1 to 200000
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
   
    PUBLIC A
    A=sss23
    SKIP 9
    PUBLIC B
    B=sss23
    cj1=B-A  &&求前后两个素数的差值
    IF E>cj1
    E=cj1
    ELSE E<=cj1
   
    E=E
         
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
   ?E
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#40
独木星空6 天前 08:58
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\二生素数jg4.DBF ALIAS 二生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=4
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ers4 WITH A+2        &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#41
独木星空6 天前 15:12
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\二生素数jg24.DBF ALIAS 二生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=24
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ers24 WITH A+12   &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#42
独木星空6 天前 20:28
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\三生素数jg24.DBF ALIAS 三生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 2
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=24
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE sss24 WITH A+12    &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#43
独木星空5 天前 07:12
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\四生素数jg24.DBF ALIAS 四生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 3
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=24
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE ssss24 WITH A+12  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#44
独木星空5 天前 11:43
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\五生素数jg24.DBF ALIAS 五生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 4
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=24
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE wss24 WITH A+12  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#45
独木星空5 天前 16:55
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\六生素数jg24.DBF ALIAS 六生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 5
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=24
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE lss24 WITH A+12  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
#46
独木星空5 天前 21:13
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\七生素数jg24.DBF ALIAS 七生素数表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 50847534
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 6
    PUBLIC B
    B=素数
    cj1=B-A  &&求前后两个素数的差值
    IF cj1=24
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE qss24 WITH A+12  &&将N值付给素数式
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
1