数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: 白新岭

[原创]请教vfbpgyfk先生一个编程问题

  [复制链接]
 楼主| 发表于 2021-6-18 15:09 | 显示全部楼层
上移,为了拍一个照片
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 16:30 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30二生素数表q2.DBF ALIAS 二生素数30
kssj=SECONDS()
For i=1 to 36495351
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 9
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=30
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式 WITH A+30  &&将N值付给素数式
         REPLACE 记录号2 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这是搜寻等比数列生成元程序(a=30,q=2),二生素数式。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 17:09 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30二生素数表q2.DBF ALIAS 二生素数30
SELECT 3
USE D:\VFP温习\L30三生素数表q2.DBF ALIAS 三生素数30
kssj=SECONDS()
For i=1 to 21205790
      @ 5,12 say i
SELECT 2
    jlh2=记录号2
    SELECT  1     &&打开盛放素数式的表
    GO jlh2
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 18
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=60
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式3 WITH A+60  &&将N值付给素数式
         REPLACE 记录号3 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 2
      skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 17:43 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30三生素数表q2.DBF ALIAS 三生素数30
SELECT 3
USE D:\VFP温习\L30四生素数表q2.DBF ALIAS 四生素数30
kssj=SECONDS()
For i=1 to 11468794
      @ 5,12 say i
SELECT 2
    jlh3=记录号3
    SELECT  1     &&打开盛放素数式的表
    GO jlh3
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 36
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=120
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式4 WITH A+120  &&将N值付给素数式
         REPLACE 记录号4 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 2
      skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 18:15 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30四生素数表q2.DBF ALIAS 四生素数30
SELECT 3
USE D:\VFP温习\L30五生素数表q2.DBF ALIAS 五生素数30
kssj=SECONDS()
For i=1 to 7469271
      @ 5,12 say i
SELECT 2
    jlh4=记录号4
    SELECT  1     &&打开盛放素数式的表
    GO jlh4
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 72
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=240
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式5 WITH A+240  &&将N值付给素数式
         REPLACE 记录号5 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 2
      skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 18:35 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30五生素数表q2.DBF ALIAS 五生素数30
SELECT 3
USE D:\VFP温习\L30六生素数表q2.DBF ALIAS 六生素数30
kssj=SECONDS()
For i=1 to 4644845
      @ 5,12 say i
SELECT 2
    jlh5=记录号5
    SELECT  1     &&打开盛放素数式的表
    GO jlh5
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 144
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=480
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式6 WITH A+480  &&将N值付给素数式
         REPLACE 记录号6 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 2
      skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 19:14 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30六生素数表q2.DBF ALIAS 六生素数30
SELECT 3
USE D:\VFP温习\L30七生素数表q2.DBF ALIAS 七生素数30
kssj=SECONDS()
For i=1 to 2722701
      @ 5,12 say i
SELECT 2
    jlh6=记录号6
    SELECT  1     &&打开盛放素数式的表
    GO jlh6
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 288
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=960
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式7 WITH A+960  &&将N值付给素数式
         REPLACE 记录号7 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 2
      skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 19:35 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30七生素数表q2.DBF ALIAS 七生素数30
SELECT 3
USE D:\VFP温习\L30八生素数表q2.DBF ALIAS 八生素数30
kssj=SECONDS()
For i=1 to 1474544
      @ 5,12 say i
SELECT 2
    jlh7=记录号7
    SELECT  1     &&打开盛放素数式的表
    GO jlh7
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 576
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=1920
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式8 WITH A+1920  &&将N值付给素数式
         REPLACE 记录号8 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 2
      skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 19:57 | 显示全部楼层
SELECT 1
USE D:\VFP温习\素数式至23表.DBF ALIAS 素数式23
SELECT 2
USE D:\VFP温习\L30八生素数表q2.DBF ALIAS 八生素数30
SELECT 3
USE D:\VFP温习\L30九生素数表q2.DBF ALIAS 九生素数30
kssj=SECONDS()
For i=1 to 712781
      @ 5,12 say i
SELECT 2
    jlh8=记录号8
    SELECT  1     &&打开盛放素数式的表
    GO jlh8
    jl=recno()
    PUBLIC A
    A=素数式
      FOR j=1 TO 1152
      SELECT  1
      GO jl+j
      PUBLIC B
      B=素数式
      C=B-A
        IF C=3840
         SELECT 3
         APPEND BLANK     &&增加一条空记录
         REPLACE 素式9 WITH A+3840  &&将N值付给素数式
         REPLACE 记录号9 WITH jl+j  &&将N值付给素数式
         exit
         else
        ENDIF
      endfor
      SELECT 2
      skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 20:30 | 显示全部楼层
做了一次无用功。把等比9生素数又运行了一遍。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-5-20 10:02 , Processed in 0.085748 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表