数学中国

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

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

  [复制链接]
发表于 2022-3-8 16:14 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\最密三生42.DBF ALIAS 三素表
kssj=SECONDS()
For i=1 to 9591
       @ 5,12 say i
     SELECT  1     &&打开盛放素数式的表
    jl=recno()
     PUBLIC A
     A=素数
    &&  COUNT NEXT 28 FOR 素数-A=56 TO tj
    SKIP
     PUBLIC B
     B=素数
     SKIP
     PUBLIC C
     C=素数
     IF B-A=4 AND C-B=2
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 三素 WITH A+3  &&将N值付给素数式
     ENDIF
       SELECT 1
       GO jl+1
    ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2022-3-8 16:16 | 显示全部楼层
截止2022年3月8日星期二二月初六下午16:23分,热度72,回复1353,浏览量47363.
回复 支持 反对

使用道具 举报

发表于 2022-3-8 16:26 | 显示全部楼层
SELECT 1
USE d:\素数表文件\最密三生42.DBF ALIAS 三素表
SELECT 2
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 3
USE d:\素数表文件\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="一素加三中逆"

For i=1 TO 1
        @ 5,12 say i
        wd=bwjm+ALLTRIM(STR(i))
            SELECT 3
            DELETE ALL
            PACK      
            SELECT 1
             GO 1
                 FOR k1=1  TO  247
                 @ 15,22 say k1
                 A=三素
                jl1=recno()
                   SELECT  2
                   GO 1
                   For k2=1 to 9591
                   jl2=recno()
                   B=素数
                  C=A+B
                   SELECT 3
                   APPEND BLANK   
                   REPLACE 偶数 WITH C   
                   SELECT 2
                   GO jl2+1
                   ENDFOR
                 SELECT 1
                 GO jl1+1
               ENDFOR   
           
         SELECT 3
         USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
        USE d:\素数表文件\偶数表.dbf && 设源表的名称为"表1"
        P=''
        FOR K=1 TO FCOUNT()
        P=P+IIF(EMPTY(P),'',',')+FIELDS(K)&& 取得表中所有字段名称,放在P中
      ENDFOR

        SELECT *,COUNT(FIELDS(1)) AS 相同记录数 FROM DBF() GROUP BY &P. INTO DBF d:\素数表文件\&wd
         
        USE IN &wd
        
      ENDFOR
      =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2022-3-9 08:16 | 显示全部楼层
SELECT 1
USE g:\一加m问题\二生素数d68.DBF ALIAS 二素中表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="二中自相减d68"

For i=1 TO 1
       @ 5,12 say i
       wd=bwjm+ALLTRIM(STR(i))
     SELECT 3
     DELETE ALL
     PACK         
               SELECT 1
                GO 1
                FOR k1=1  TO  1302
                @ 15,22 say k1
                A=二素68
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to  1302
                  jl2=recno()
                  B=二素68
                  C=A-B      && C=ABS(A-B)
                  SELECT 3
                  APPEND BLANK   
                  REPLACE 偶数 WITH C   
                  SELECT 1
                  GO jl2+1
                  ENDFOR
                SELECT 1
                GO jl1+1
              ENDFOR   
         
        SELECT 3
        USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
       USE g:\一加m问题\偶数表.dbf && 设源表的名称为"表1"
       P=''
       FOR K=1 TO FCOUNT()
       P=P+IIF(EMPTY(P),'',',')+FIELDS(K)&& 取得表中所有字段名称,放在P中
      ENDFOR

       SELECT *,COUNT(FIELDS(1)) AS 相同记录数 FROM DBF() GROUP BY &P. INTO DBF g:\一加m问题\&wd
        
       USE IN &wd
      
     ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-9 09:38 | 显示全部楼层
SELECT 1
USE d:\素数表文件\最密四生素数.DBF ALIAS 四素表
SELECT 2
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 3
USE d:\素数表文件\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="一素加四中"

For i=1 TO 1
        @ 5,12 say i
        wd=bwjm+ALLTRIM(STR(i))
            SELECT 3
            DELETE ALL
            PACK      
            SELECT 1
             GO 1
                 FOR k1=1  TO  37
                 @ 15,22 say k1
                 A=四素
                jl1=recno()
                   SELECT  2
                   GO 1
                   For k2=1 to 9591
                   jl2=recno()
                   B=素数
                  C=A+B
                   SELECT 3
                   APPEND BLANK   
                   REPLACE 偶数 WITH C   
                   SELECT 2
                   GO jl2+1
                   ENDFOR
                 SELECT 1
                 GO jl1+1
               ENDFOR   
           
         SELECT 3
         USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
        USE d:\素数表文件\偶数表.dbf && 设源表的名称为"表1"
        P=''
        FOR K=1 TO FCOUNT()
        P=P+IIF(EMPTY(P),'',',')+FIELDS(K)&& 取得表中所有字段名称,放在P中
      ENDFOR

        SELECT *,COUNT(FIELDS(1)) AS 相同记录数 FROM DBF() GROUP BY &P. INTO DBF d:\素数表文件\&wd
         
        USE IN &wd
        
      ENDFOR
      =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-9 16:29 | 显示全部楼层
SELECT 1
USE g:\一加m问题\二生素数d70.DBF ALIAS 二素中表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="二中自相减d70"

For i=1 TO 1
       @ 5,12 say i
       wd=bwjm+ALLTRIM(STR(i))
     SELECT 3
     DELETE ALL
     PACK         
               SELECT 1
                GO 1
                FOR k1=1  TO  1984
                @ 15,22 say k1
                A=二素70
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to  1984
                  jl2=recno()
                  B=二素70
                  C=A-B      && C=ABS(A-B)
                  SELECT 3
                  APPEND BLANK   
                  REPLACE 偶数 WITH C   
                  SELECT 1
                  GO jl2+1
                  ENDFOR
                SELECT 1
                GO jl1+1
              ENDFOR   
         
        SELECT 3
        USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
       USE g:\一加m问题\偶数表.dbf && 设源表的名称为"表1"
       P=''
       FOR K=1 TO FCOUNT()
       P=P+IIF(EMPTY(P),'',',')+FIELDS(K)&& 取得表中所有字段名称,放在P中
      ENDFOR

       SELECT *,COUNT(FIELDS(1)) AS 相同记录数 FROM DBF() GROUP BY &P. INTO DBF g:\一加m问题\&wd
        
       USE IN &wd
      
     ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-14 09:39 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\最密五生素数.DBF ALIAS 五素表
kssj=SECONDS()
For i=1 to 9591
       @ 5,12 say i
     SELECT  1     &&打开盛放素数式的表
    jl=recno()
     PUBLIC A
     A=素数
    &&  COUNT NEXT 28 FOR 素数-A=56 TO tj
    SKIP
     PUBLIC B
     B=素数
     SKIP
     PUBLIC C
     C=素数
     SKIP
     PUBLIC D
     D=素数
     SKIP
     PUBLIC E
     E=素数
     IF B-A=2 AND C-B=4 AND D-C=2 AND E-D=4
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 五素 WITH A+6  &&将N值付给素数式
     ENDIF
       SELECT 1
       GO jl+1
    ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-14 10:01 | 显示全部楼层
SELECT 1
USE d:\素数表文件\最密五生素数.DBF ALIAS 五素表
SELECT 2
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 3
USE d:\素数表文件\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="一素加五中"

For i=1 TO 1
        @ 5,12 say i
        wd=bwjm+ALLTRIM(STR(i))
            SELECT 3
            DELETE ALL
            PACK      
            SELECT 1
             GO 1
                 FOR k1=1  TO  9
                 @ 15,22 say k1
                 A=五素
                jl1=recno()
                   SELECT  2
                   GO 1
                   For k2=1 to 9591
                   jl2=recno()
                   B=素数
                  C=A+B
                   SELECT 3
                   APPEND BLANK   
                   REPLACE 偶数 WITH C   
                   SELECT 2
                   GO jl2+1
                   ENDFOR
                 SELECT 1
                 GO jl1+1
               ENDFOR   
           
         SELECT 3
         USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
        USE d:\素数表文件\偶数表.dbf && 设源表的名称为"表1"
        P=''
        FOR K=1 TO FCOUNT()
        P=P+IIF(EMPTY(P),'',',')+FIELDS(K)&& 取得表中所有字段名称,放在P中
      ENDFOR

        SELECT *,COUNT(FIELDS(1)) AS 相同记录数 FROM DBF() GROUP BY &P. INTO DBF d:\素数表文件\&wd
         
        USE IN &wd
        
      ENDFOR
      =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-14 17:47 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\最密五生素数.DBF ALIAS 五素表
kssj=SECONDS()
SELECT  1   
GO 9592
For i=1 to 8392
       @ 5,12 say i
     SELECT  1     &&打开盛放素数式的表
    jl=recno()
     PUBLIC A
     A=素数
    &&  COUNT NEXT 28 FOR 素数-A=56 TO tj
    SKIP
     PUBLIC B
     B=素数
     SKIP
     PUBLIC C
     C=素数
     SKIP
     PUBLIC D
     D=素数
     SKIP
     PUBLIC E
     E=素数
     IF B-A=2 AND C-B=4 AND D-C=2 AND E-D=4
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 五素 WITH A+6  &&将N值付给素数式
     ENDIF
       SELECT 1
       GO jl+1
    ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
说明:原来把go 9592 放在了循环之内,没有制作出最密5生素数,所以必须放在循环体之外,在循环前把指针移到开始位置。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-14 17:53 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\最密五生素数.DBF ALIAS 五素表
kssj=SECONDS()
SELECT  1   
GO 17984
For i=1 to 8013
       @ 5,12 say i
     SELECT  1     &&打开盛放素数式的表
    jl=recno()
     PUBLIC A
     A=素数
    &&  COUNT NEXT 28 FOR 素数-A=56 TO tj
    SKIP
     PUBLIC B
     B=素数
     SKIP
     PUBLIC C
     C=素数
     SKIP
     PUBLIC D
     D=素数
     SKIP
     PUBLIC E
     E=素数
     IF B-A=2 AND C-B=4 AND D-C=2 AND E-D=4
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 五素 WITH A+6  &&将N值付给素数式
     ENDIF
       SELECT 1
       GO jl+1
    ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 08:54 , Processed in 0.089607 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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