数学中国

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

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

  [复制链接]
 楼主| 发表于 2022-3-22 09:00 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\最密六生素数.DBF ALIAS 六素表
kssj=SECONDS()
SELECT  1   
GO 1
For i=1 to 78497
       @ 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=素数
     SKIP
     PUBLIC F
     F=素数
     IF B-A=4 AND C-B=2 AND D-C=4 AND E-D=2 AND F-E=4
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 六素 WITH A+8  &&将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-22 09:04 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\最密六生素数.DBF ALIAS 六素表
kssj=SECONDS()
SELECT  1   
GO 78498
For i=1 to 586081
       @ 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=素数
     SKIP
     PUBLIC F
     F=素数
     IF B-A=4 AND C-B=2 AND D-C=4 AND E-D=2 AND F-E=4
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 六素 WITH A+8  &&将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-22 09:16 | 显示全部楼层
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  17
                 @ 15,22 say k1
                 A=六素
                jl1=recno()
                   SELECT  2
                   GO 4
                   For k2=1 to 664575
                   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-22 09:38 | 显示全部楼层
MODIFY PROJECT d:\素数表文件\素数表项目.pjx
SELECT 最密六生素数
BROWSE LAST
USE
MODIFY COMMAND d:\素数表文件\制作最密五生素数.prg AS 936
?52501+25997
DO d:\素数表文件\制作最密六生素数.prg
MODIFY COMMAND d:\素数表文件\制作最密六生素数.prg AS 936
SELECT 六素表
BROWSE LAST
DELETE NEXT 1
PACK
SELECT 六素表
BROWSE LAST
USE
SELECT 素数表
BROWSE LAST
USE
USE 素数表亿 AGAIN IN 0
SELECT 素数表亿
BROWSE LAST
USE
DO d:\素数表文件\制作最密六生素数.prg
SELECT 六素表
BROWSE LAST
USE
USE 素数千亿 AGAIN IN 0
SELECT 素数千亿
BROWSE LAST
USE
SELECT 素数表
BROWSE LAST
COUNT ALL FOR 素数<10000000 TO tj
?tj
?664578-78497
USE
MODIFY COMMAND d:\素数表文件\制作最密六生素数.prg AS 936
DO d:\素数表文件\制作最密六生素数.prg
SELECT 六素表
BROWSE LAST
COPY TO d:\素数表文件\最密6生素数.xls TYPE XL5
USE
MODIFY COMMAND d:\素数表文件\制作最密六生素数.prg AS 936
USE 最密六生素数 AGAIN IN 0
SELECT 最密六生素数
BROWSE LAST
DELETE NEXT 1
PACK
SELECT 最密六生素数
BROWSE LAST
?RECCOUNT()
USE
USE 最密六生素数 AGAIN IN 0
SELECT 最密六生素数
BROWSE LAST
USE
SELECT 素数表
BROWSE LAST
USE
USE 素数表亿 AGAIN IN 0
SELECT 素数表亿
BROWSE LAST
USE
MODIFY COMMAND d:\素数表文件\统计一素加五中合成数.prg AS 936
DO d:\素数表文件\统计一素加六中合成数.prg
MODIFY COMMAND d:\素数表文件\统计一素加六中合成数.prg AS 936
ADD TABLE d:\素数表文件\一素加六中千万1.dbf
USE 一素加六中千万1 AGAIN IN 0
SELECT 一素加六中千万1
BROWSE LAST
?RECCOUNT()
GO bottom
GO 1
COPY TO d:\素数表文件\一素加六中1.xls TYPE XL5
COPY TO d:\素数表文件\一素加六中2.xls REST TYPE XL5
COPY TO d:\素数表文件\一素加六中3.xls REST TYPE XL5
COUNT ALL FOR 偶数<1850000 TO tj
?tj
GO 349455
COPY TO d:\素数表文件\一素加六中2百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<2850000 TO tj
?tj
GO 559438
COPY TO d:\素数表文件\一素加六中3百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<3850000 TO tj
?tj
GO 781610
COPY TO d:\素数表文件\一素加六中4百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<4850000 TO tj
?tj
GO 1004640
COPY TO d:\素数表文件\一素加六中5百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<5850000 TO tj
?tj
GO 1227050
COPY TO d:\素数表文件\一素加六中6百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<6850000 TO tj
?tj
GO 1451162
COPY TO d:\素数表文件\一素加六中7百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<7850000 TO tj
?tj
GO 1677067
COPY TO d:\素数表文件\一素加六中8百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<8850000 TO tj
?tj
GO 1904153
COPY TO d:\素数表文件\一素加六中9百万.xls REST TYPE XL5
COUNT ALL FOR 偶数<9850000 TO tj
?tj
GO 2131592
COPY TO d:\素数表文件\一素加六中10百万.xls REST TYPE XL5
操作记录
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-24 09:09 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\最密六生素数.DBF ALIAS 六素表
kssj=SECONDS()
SELECT  1   
GO 664579
For i=1 to 5096876
       @ 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=素数
     SKIP
     PUBLIC F
     F=素数
     IF B-A=4 AND C-B=2 AND D-C=4 AND E-D=2 AND F-E=4
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 六素 WITH A+8  &&将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-24 09:38 | 显示全部楼层
SELECT 1
USE d:\素数表文件\素数表亿新.DBF ALIAS 素数表
SELECT 2
USE d:\素数表文件\素数分段统计.DBF ALIAS 素数统计
kssj=SECONDS()

For i=1 to 10
       @ 5,12 say i
       n=i*10000000
     SELECT 1
     COUNT ALL FOR 素数<n TO tj
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 范围 WITH n
         REPLACE 总个数 WITH tj
ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-24 09:46 | 显示全部楼层
SELECT 1
USE d:\素数表文件\最密六生素数.DBF ALIAS 六素表
SELECT 2
USE d:\素数表文件\六素分段统计.DBF ALIAS 六素统计
kssj=SECONDS()

For i=1 to 10
       @ 5,12 say i
       n=i*10000000
     SELECT 1
     COUNT ALL FOR 六素<n TO tj
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 范围 WITH n
         REPLACE 总个数 WITH tj
ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

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

SELECT 4
USE d:\素数表文件\六素分段统计.DBF ALIAS 六素统计
SELECT 5
USE d:\素数表文件\素数分段统计.DBF ALIAS 素数统计
kssj=SECONDS()
bwjm="一素加六中千万"

For i=10 TO 10
        @ 5,12 say i
        wd=bwjm+ALLTRIM(STR(i))
            SELECT 3
            DELETE ALL
            PACK   
             FOR j=1 TO i/2
        @ 15,22 say j
        SELECT  4   
        GO j
        zgs1=总个数
        fgs1=分个数
        SELECT  5
        GO 10-j+1
        zgs2=总个数
        fgs2=分个数
              
            SELECT 1
             GO zgs1-fgs1+1
                 FOR k1=1  TO  fgs1
                 
                 A=六素
                jl1=recno()
                   SELECT  2
                   GO  zgs2-fgs2+1
                   For k2=1 TO fgs2
                   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   
         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,"运行时间提示")
这是一素+最密6生素数的中项在1亿1千万区间段的合成程序。
回复 支持 反对

使用道具 举报

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

SELECT 4
USE d:\素数表文件\六素分段统计.DBF ALIAS 六素统计
SELECT 5
USE d:\素数表文件\素数分段统计.DBF ALIAS 素数统计
kssj=SECONDS()
bwjm="一素加六中千万续"

For i=10 TO 10
        @ 5,12 say i
        wd=bwjm+ALLTRIM(STR(i))
            SELECT 3
            DELETE ALL
            PACK   
             FOR j=6 TO i
        @ 15,22 say j
        SELECT  4   
        GO j
        zgs1=总个数
        fgs1=分个数
        SELECT  5
        GO 10-j+1
        zgs2=总个数
        fgs2=分个数
              
            SELECT 1
             GO zgs1-fgs1+1
                 FOR k1=1  TO  fgs1
                 
                 A=六素
                jl1=recno()
                   SELECT  2
                   GO  zgs2-fgs2+1
                   For k2=1 TO fgs2
                   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   
         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-26 10:54 | 显示全部楼层
SELECT 1
USE d:\素数表文件\合成数生成元.DBF ALIAS 生成元表
SELECT 2
USE d:\素数表文件\合成数参照.DBF ALIAS 参照表
kssj=SECONDS()
For i=1 to 47500
       @ 5,12 say i
     FOR j=1 TO 48
     SELECT 1
     GO j
     s=偶数
     cs=s+(i-1)*210
          SELECT 2
          APPEND BLANK     &&增加一条空记录
         REPLACE 偶数 WITH cs  &&将N值付给素数式
   endfor
      
ENDFOR
     =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-3 12:00 , Processed in 0.062500 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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