数学中国

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

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

  [复制链接]
发表于 2022-1-21 14:42 | 显示全部楼层
SELECT 1
USE g:\一加m问题\二生素数d16.DBF ALIAS 二素中表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

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

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  1231
                @ 15,22 say k1
                A=二素16
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to  1231
                  jl2=recno()
                  B=二素16
                  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-1-21 20:55 | 显示全部楼层
SELECT 1
USE g:\一加m问题\二生素数d14.DBF ALIAS 二素中表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

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

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  1486
                @ 15,22 say k1
                A=二素14
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to  1486
                  jl2=recno()
                  B=二素14
                  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,"运行时间提示")
按照素数减法公式:二生素数(0,14),在同范围之内是二生素数(0,16)的1.2倍,由1487/1.2=1238个,实际有1231个,误差不大。
回复 支持 反对

使用道具 举报

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

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

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  2420
                @ 15,22 say k1
                A=二素12
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to  2420
                  jl2=recno()
                  B=二素12
                  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-1-22 14:26 | 显示全部楼层
SELECT 1
USE g:\一加m问题\二生素数d10.DBF ALIAS 二素中表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

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

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  1622
                @ 15,22 say k1
                A=二素10
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to  1622
                  jl2=recno()
                  B=二素10
                  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-1-22 22:50 | 显示全部楼层
SELECT 1
USE g:\一加m问题\素数表十万.DBF ALIAS 素数表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="偶数周期表一加1至1段千"

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  1000
                @ 15,22 say k1
                A=素数
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to 1000
                  jl2=recno()
                  B=素数
                 C=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-1-23 14:54 | 显示全部楼层
SELECT 1
USE g:\一加m问题\素数表十万.DBF ALIAS 素数表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="偶数周期表一加1至1段千1代"

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  1100
                @ 15,22 say k1
                A=素数
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to 1100
                  jl2=recno()
                  B=素数
                 C=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-1-23 14:55 | 显示全部楼层
SELECT 1
USE g:\一加m问题\素数表十万.DBF ALIAS 素数表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="偶数周期表一加1至1段千2代"

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  1200
                @ 15,22 say k1
                A=素数
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to 1200
                  jl2=recno()
                  B=素数
                 C=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-1-23 14:56 | 显示全部楼层
SELECT 1
USE g:\一加m问题\素数表十万.DBF ALIAS 素数表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="偶数周期表一加1至1段千3代"

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  1300
                @ 15,22 say k1
                A=素数
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to 1300
                  jl2=recno()
                  B=素数
                 C=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-1-23 14:57 | 显示全部楼层
SELECT 1
USE g:\一加m问题\素数表十万.DBF ALIAS 素数表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="偶数周期表一加1至1段千4代"

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  1400
                @ 15,22 say k1
                A=素数
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to 1400
                  jl2=recno()
                  B=素数
                 C=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-1-23 14:58 | 显示全部楼层
SELECT 1
USE g:\一加m问题\素数表十万.DBF ALIAS 素数表
SELECT 3
USE g:\一加m问题\偶数表.DBF ALIAS 偶数表

kssj=SECONDS()
bwjm="偶数周期表一加1至1段千5代"

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  1500
                @ 15,22 say k1
                A=素数
               jl1=recno()
                  SELECT  1
                  GO 1
                  For k2=1 to 1500
                  jl2=recno()
                  B=素数
                 C=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,"运行时间提示")
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 03:43 , Processed in 0.098775 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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