| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1879 人关注过本帖
标题:简单的筛选二生素数程序
只看楼主 加入收藏
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
 USE d:\最密四生素数文件\四中和值5.DBF ALIAS 四中和5
 SELECT 2
 USE d:\最密四生素数文件\四中和值23.DBF ALIAS 四中和23  &&需要更改文件名中阿拉伯数字内容
 kssj=SECONDS()
 SELECT 1
 GO 1
 FOR i=1 TO 21246940
   @ 3,6 say i
   PUBLIC A
   A=szhz5+8031343320  &&446185740*(23-5),需要更改被减数
   jl=recno()
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE szhz23 WITH A  &&需要更改字段名阿拉伯数字内容
      SELECT 1
      skip
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
用四中和值5制作四中和值23

素数问题的解决是我学习编程永恒的动力。
前天 21:35
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值23.DBF ALIAS 四中和23 &&需要更改阿拉伯数字部分
   SELECT 3
   USE d:\最密四生素数文件\四中统计表.DBF ALIAS 四中统计表
   kssj=SECONDS()
   SELECT 3
   GO 12 &&需要更改到段区+1除2一半的位置(指区间记录条
   FOR k=1 TO 1
    @ 9,6 say k
   jl1=recno()
   PUBLIC ZL1
   ZL1=总量
   PUBLIC FL1
   FL1=分量
   czhi=24-12 &&czhi代表差值,即合成区间分量,需要更改段区和值
   SELECT 3
   GO czhi
   PUBLIC ZL2
   ZL2=总量
   PUBLIC FL2
   FL2=分量
        SELECT 1
        GO ZL1-FL1+1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
        FOR i=1 TO FL1
         && @ 19,16 say i
        jl=recno()
        PUBLIC A
        A=ssz
           SELECT 1
           GO ZL2-FL2+1&&到段区起始位置
           FOR j=1  TO FL2&&循环本区间的数据量
           PUBLIC B
           B=ssz
           n=A+B
           c=INT(n/210)*5-233716340 &&10623470*(23-1),需要更改段区阿拉伯数字,公式值改变被减数
           d=(n-210*INT(n/210))/30
              IF d<2
              SELECT  2
              GO   c+d
              REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分
              ELSE
              SELECT  2
              GO c+INT((d+INT(d/2))/2)
              REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分
              ENDIF
         SELECT 1
         skip
         ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
 SELECT 3&&原来这里没有选择工作区导致第二次循环时中断
 GO jl1+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
四中和值23平方项参与时合成分配

素数问题的解决是我学习编程永恒的动力。
前天 23:03
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
 USE d:\最密四生素数文件\四中和值5.DBF ALIAS 四中和5
 SELECT 2
 USE d:\最密四生素数文件\四中和值22.DBF ALIAS 四中和22  &&需要更改文件名中阿拉伯数字内容
 kssj=SECONDS()
 SELECT 1
 GO 1
 FOR i=1 TO 21246940
   @ 3,6 say i
   PUBLIC A
   A=szhz5+7585157580  &&446185740*(22-5),需要更改被减数
   jl=recno()
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE szhz22 WITH A  &&需要更改字段名阿拉伯数字内容
      SELECT 1
      skip
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
用四中和值5制作四中和值22

素数问题的解决是我学习编程永恒的动力。
昨天 11:21
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值22.DBF ALIAS 四中和22  &&每次需要改动
   SELECT 3
   USE d:\最密四生素数文件\四中统计表.DBF ALIAS 四中统计表
   kssj=SECONDS()
   SELECT 3
   GO 1
   FOR k=1 TO 11  &&每次需要改动
    @ 9,6 say k
   jl1=recno()
   PUBLIC ZL1
   ZL1=总量
   PUBLIC FL1
   FL1=分量
   czhi=23-k &&czhi代表差值,即合成区间分量,这里每次需要改动
   SELECT 3
   GO czhi
   PUBLIC ZL2
   ZL2=总量
   PUBLIC FL2
   FL2=分量
        SELECT 1
        GO ZL1-FL1+1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
        FOR i=1 TO FL1
         && @ 19,16 say i
        jl=recno()
        PUBLIC A
        A=ssz
           SELECT 1
           GO ZL2-FL2+1&&到段区起始位置
           FOR j=1  TO FL2&&循环本区间的数据量
           PUBLIC B
           B=ssz
           n=A+B
           c=INT(n/210)*5-223092870 &&10623470*(22-1),每次需要改动
           d=(n-210*INT(n/210))/30
              IF d<2
              SELECT  2
              GO   c+d
              REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
              ELSE
              SELECT  2
              GO c+INT((d+INT(d/2))/2)
              REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
              ENDIF
         SELECT 1
         skip
         ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
 SELECT 3&&原来这里没有选择工作区导致第二次循环时中断
 GO jl1+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
四中和值22合成分配

素数问题的解决是我学习编程永恒的动力。
昨天 11:42
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
 USE d:\最密四生素数文件\四中和值5.DBF ALIAS 四中和5
 SELECT 2
 USE d:\最密四生素数文件\四中和值21.DBF ALIAS 四中和21  &&需要更改文件名中阿拉伯数字内容
 kssj=SECONDS()
 SELECT 1
 GO 1
 FOR i=1 TO 21246940
   @ 3,6 say i
   PUBLIC A
   A=szhz5+7138971840  &&446185740*(21-5),需要更改被减数
   jl=recno()
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE szhz21 WITH A  &&需要更改字段名阿拉伯数字内容
      SELECT 1
      skip
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
用四中和值5制作四中和值21

素数问题的解决是我学习编程永恒的动力。
昨天 16:54
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值21.DBF ALIAS 四中和21  &&每次需要改动
   SELECT 3
   USE d:\最密四生素数文件\四中统计表.DBF ALIAS 四中统计表
   kssj=SECONDS()
   SELECT 3
   GO 1
   FOR k=1 TO 10  &&每次需要改动
    @ 9,6 say k
   jl1=recno()
   PUBLIC ZL1
   ZL1=总量
   PUBLIC FL1
   FL1=分量
   czhi=22-k &&czhi代表差值,即合成区间分量,这里每次需要改动
   SELECT 3
   GO czhi
   PUBLIC ZL2
   ZL2=总量
   PUBLIC FL2
   FL2=分量
        SELECT 1
        GO ZL1-FL1+1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
        FOR i=1 TO FL1
         && @ 19,16 say i
        jl=recno()
        PUBLIC A
        A=ssz
           SELECT 1
           GO ZL2-FL2+1&&到段区起始位置
           FOR j=1  TO FL2&&循环本区间的数据量
           PUBLIC B
           B=ssz
           n=A+B
           c=INT(n/210)*5-212469400 &&10623470*(21-1),每次需要改动
           d=(n-210*INT(n/210))/30
              IF d<2
              SELECT  2
              GO   c+d
              REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
              ELSE
              SELECT  2
              GO c+INT((d+INT(d/2))/2)
              REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
              ENDIF
         SELECT 1
         skip
         ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
 SELECT 3&&原来这里没有选择工作区导致第二次循环时中断
 GO jl1+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
四中和值21合成分配

素数问题的解决是我学习编程永恒的动力。
昨天 17:19
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值21.DBF ALIAS 四中和21 &&需要更改阿拉伯数字部分
   SELECT 3
   USE d:\最密四生素数文件\四中统计表.DBF ALIAS 四中统计表
   kssj=SECONDS()
   SELECT 3
   GO 11 &&需要更改到段区+1除2一半的位置(指区间记录条
   FOR k=1 TO 1
    @ 9,6 say k
   jl1=recno()
   PUBLIC ZL1
   ZL1=总量
   PUBLIC FL1
   FL1=分量
   czhi=22-11 &&czhi代表差值,即合成区间分量,需要更改段区和值
   SELECT 3
   GO czhi
   PUBLIC ZL2
   ZL2=总量
   PUBLIC FL2
   FL2=分量
        SELECT 1
        GO ZL1-FL1+1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
        FOR i=1 TO FL1
         && @ 19,16 say i
        jl=recno()
        PUBLIC A
        A=ssz
           SELECT 1
           GO ZL2-FL2+1&&到段区起始位置
           FOR j=1  TO FL2&&循环本区间的数据量
           PUBLIC B
           B=ssz
           n=A+B
           c=INT(n/210)*5-212469400 &&10623470*(21-1),需要更改段区阿拉伯数字,公式值改变被减数
           d=(n-210*INT(n/210))/30
              IF d<2
              SELECT  2
              GO   c+d
              REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分
              ELSE
              SELECT  2
              GO c+INT((d+INT(d/2))/2)
              REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分
              ENDIF
         SELECT 1
         skip
         ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
 SELECT 3&&原来这里没有选择工作区导致第二次循环时中断
 GO jl1+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
四中和值21合成平方参与时分配

素数问题的解决是我学习编程永恒的动力。
昨晚 21:12
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
 USE d:\最密四生素数文件\四中和值5.DBF ALIAS 四中和5
 SELECT 2
 USE d:\最密四生素数文件\四中和值20.DBF ALIAS 四中和20  &&需要更改文件名中阿拉伯数字内容
 kssj=SECONDS()
 SELECT 1
 GO 1
 FOR i=1 TO 21246940
   @ 3,6 say i
   PUBLIC A
   A=szhz5+6692786100  &&446185740*(20-5),需要更改被减数
   jl=recno()
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE szhz20 WITH A  &&需要更改字段名阿拉伯数字内容
      SELECT 1
      skip
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
用四中和值5制作四中和值20

素数问题的解决是我学习编程永恒的动力。
昨晚 21:40
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值20.DBF ALIAS 四中和20  &&每次需要改动
   SELECT 3
   USE d:\最密四生素数文件\四中统计表.DBF ALIAS 四中统计表
   kssj=SECONDS()
   SELECT 3
   GO 1
   FOR k=1 TO 10  &&每次需要改动
    @ 9,6 say k
   jl1=recno()
   PUBLIC ZL1
   ZL1=总量
   PUBLIC FL1
   FL1=分量
   czhi=21-k &&czhi代表差值,即合成区间分量,这里每次需要改动
   SELECT 3
   GO czhi
   PUBLIC ZL2
   ZL2=总量
   PUBLIC FL2
   FL2=分量
        SELECT 1
        GO ZL1-FL1+1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
        FOR i=1 TO FL1
         && @ 19,16 say i
        jl=recno()
        PUBLIC A
        A=ssz
           SELECT 1
           GO ZL2-FL2+1&&到段区起始位置
           FOR j=1  TO FL2&&循环本区间的数据量
           PUBLIC B
           B=ssz
           n=A+B
           c=INT(n/210)*5-201845930 &&10623470*(20-1),每次需要改动
           d=(n-210*INT(n/210))/30
              IF d<2
              SELECT  2
              GO   c+d
              REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
              ELSE
              SELECT  2
              GO c+INT((d+INT(d/2))/2)
              REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
              ENDIF
         SELECT 1
         skip
         ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
 SELECT 3&&原来这里没有选择工作区导致第二次循环时中断
 GO jl1+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
四中和值20合成分配

素数问题的解决是我学习编程永恒的动力。
昨晚 22:00
快速回复:简单的筛选二生素数程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017519 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved