| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2966 人关注过本帖
标题:简单的筛选二生素数程序
取消只看楼主 加入收藏
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE D:\素数式系数\素数式23.DBF ALIAS 素数式
SELECT 2
USE D:\素数式系数\最密k生素数间距23.DBF ALIAS 间距
kssj=SECONDS()
FOR h=24 TO 25
    @ 5,12 say h
    k=h+1
    SELECT  1
    GO 1
    E=1000
      For i=1 to 36495250
     
      SELECT  1     &&打开盛放素数式的表
      jl=recno()
   
      PUBLIC A
      A=sss23
      SKIP h
      PUBLIC B
      B=sss23
      cj1=B-A  &&求前后两个素数的差值
      IF E>cj1
      E=cj1
      ELSE E<=cj1
   
      E=E
         
      ENDIF
      SELECT 1
      GO jl+1
      ENDFOR
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE ksss23  WITH k &&将k值付给ksss
      REPLACE jj23  WITH E
      
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2025-04-20 20:12
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
     USE D:\制作最密素数式\素数式13.DBF ALIAS 素数式
     SELECT 2
     USE D:\制作最密素数式\素数式间距.DBF ALIAS 素数式间距
     SELECT 3
     USE D:\制作最密素数式\k生素数式.DBF ALIAS k生素数式
     kssj=SECONDS()
     FOR j=30 TO 68
        @ 5,12 say j
         k=j+1
         SELECT 2
         GO k-1
         PUBLIC ss
         ss=生数
         PUBLIC kj
         kj=跨距
           SELECT  1
           GO 1
           For i=1 to 5760
           SELECT  1     
           jl=recno()
           PUBLIC A
           A=ssss13
           SKIP k-1
           PUBLIC B
           B=ssss13
           cj1=B-A  &&求间隔一定素数式个数的差值
              IF cj1=kj
              SELECT 3
              APPEND BLANK     &&增加一条空记录
              REPLACE k生  WITH   k    &&赋值语句
              REPLACE 位置 WITH   jl   &&赋值语句
                  FOR n=1 TO k
                   cc="sss"+transform(n)
                   SELECT 1
                   GO jl
                   C=ssss13
                   SELECT 3
                   REPLACE &cc. WITH  C
                   SELECT 1
                   GO jl+1
                  ENDFOR
              ENDIF
         SELECT 1
         GO jl+1
         ENDFOR
         
       ENDFOR
       =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
所得结果不是自己预期的样子。
问题的关键应该是吧select 1
go jl 语句放在了最内层循环里面了,应该放在外面。

素数问题的解决是我学习编程永恒的动力。
2025-04-26 17:22
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
     USE D:\制作最密素数式\素数式13.DBF ALIAS 素数式
     SELECT 2
     USE D:\制作最密素数式\素数式间距.DBF ALIAS 素数式间距
     SELECT 3
     USE D:\制作最密素数式\k生素数式.DBF ALIAS k生素数式
     kssj=SECONDS()
     FOR j=30 TO 68
        @ 5,12 say j
         k=j+1
         SELECT 2
         GO k-1
         PUBLIC ss
         ss=生数
         PUBLIC kj
         kj=跨距
           SELECT  1
           GO 1
           For i=1 to 5760
           SELECT  1     
           jl=recno()
           PUBLIC A
           A=ssss13
           SKIP k-1
           PUBLIC B
           B=ssss13
           cj1=B-A  &&求间隔一定素数式个数的差值
              IF cj1=kj
              SELECT 3
              APPEND BLANK     &&增加一条空记录
              REPLACE k生  WITH   k    &&赋值语句
              REPLACE 位置 WITH   jl   &&赋值语句
                   SELECT 1
                   GO jl
                   FOR n=1 TO k
                   cc="sss"+transform(n)
                   C=ssss13
                   SELECT 3
                   REPLACE &cc. WITH  C
                   SELECT 1
                   GO jl+1
                   ENDFOR
              ENDIF
         SELECT 1
         GO jl+1
         ENDFOR
         
       ENDFOR
       =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
仍就没有获得想要的结果,那个GO jl+1还是不行,没有变化。

素数问题的解决是我学习编程永恒的动力。
2025-04-26 17:37
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
     USE D:\制作最密素数式\素数式13.DBF ALIAS 素数式
     SELECT 2
     USE D:\制作最密素数式\素数式间距.DBF ALIAS 素数式间距
     SELECT 3
     USE D:\制作最密素数式\k生素数式.DBF ALIAS k生素数式
     kssj=SECONDS()
     FOR j=30 TO 68
        @ 5,12 say j
         k=j+1
         SELECT 2
         GO k-1
         PUBLIC ss
         ss=生数
         PUBLIC kj
         kj=跨距
           SELECT  1
           GO 1
           For i=1 to 5760
           SELECT  1     
           jl=recno()
           PUBLIC A
           A=ssss13
           SKIP k-1
           PUBLIC B
           B=ssss13
           cj1=B-A  &&求间隔一定素数式个数的差值
              IF cj1=kj
              SELECT 3
              APPEND BLANK     &&增加一条空记录
              REPLACE k生  WITH   k    &&赋值语句
              REPLACE 位置 WITH   jl   &&赋值语句
                   SELECT 1
                   GO jl
                   FOR n=1 TO k
                   cc="sss"+transform(n)
                   C=ssss13
                   SELECT 3
                   REPLACE &cc. WITH  C
                   SELECT 1
                   GO jl+n
                   ENDFOR
              ENDIF
         SELECT 1
         GO jl+1
         ENDFOR
         
       ENDFOR
       =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
获得满意结果,是自己预想的样子

素数问题的解决是我学习编程永恒的动力。
2025-04-26 17:40
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
只有对问题有深刻的了解,才能运用vfp编程获得自己想要的结果。从Excel翻译成vfp程序。

素数问题的解决是我学习编程永恒的动力。
2025-04-27 21:01
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE D:\素数式系数\素数式23.DBF ALIAS 素数式
SELECT 2
USE D:\素数式系数\最密k生素数间距23.DBF ALIAS 间距
kssj=SECONDS()
FOR h=85 TO 87
    @ 5,12 say h
    k=h+1
    SELECT  1
    GO 1
    E=1000
      For i=1 to 36495250
     
      SELECT  1     &&打开盛放素数式的表
      jl=recno()
   
      PUBLIC A
      A=sss23
      SKIP h
      PUBLIC B
      B=sss23
      cj1=B-A  &&求前后两个素数的差值
      IF E>cj1
      E=cj1
      ELSE E<=cj1
   
      E=E
         
      ENDIF
      SELECT 1
      GO jl+1
      ENDFOR
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE ksss23  WITH k &&将k值付给ksss
      REPLACE jj23  WITH E
      
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2025-04-28 23:56
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE D:\素数式新\素数式7.dbf ALIAS 素数式7
SELECT 2
USE D:\素数式新\素数式11.dbf ALIAS 素数式11
kssj=SECONDS()  &&取出开始时间
 FOR  i=1 TO 11  &&又遇到以前类似事情,外循环变量用了j与下面的内循环变量一致,所以提示0不能做除数。
    SELECT 1
    GO 1
    ss=11
    FOR j=1 TO 48
        sz7=Ss7
        ssy=sz7+(i-1)*210
        ys=MOD(ssy,ss)
        IF ys=0
        else
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE Ss11 WITH ssy
      ENDIF  
      SELECT 1
      SKIP
    ENDFOR
 ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2025-05-19 22:09
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE D:\素数式新\素数式11.dbf ALIAS 素数式11
SELECT 2
USE D:\素数式新\素数式13.dbf ALIAS 素数式13
kssj=SECONDS()  &&取出开始时间
 FOR  i=1 TO 13  &&又遇到以前类似事情,外循环变量用了j与下面的内循环变量一致,所以提示0不能做除数。
    SELECT 1
    GO 1
    ss=13
    FOR j=1 TO 480
        sz11=Ss11
        ssy=sz11+(i-1)*2310
        ys=MOD(ssy,ss)
        IF ys=0
        else
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE Ss13 WITH ssy
      ENDIF  
      SELECT 1
      SKIP
    ENDFOR
 ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2025-05-19 22:09
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE D:\素数式新\素数式13.dbf ALIAS 素数式13
SELECT 2
USE D:\素数式新\素数式17.dbf ALIAS 素数式17
kssj=SECONDS()  &&取出开始时间
 FOR  i=1 TO 17  &&又遇到以前类似事情,外循环变量用了j与下面的内循环变量一致,所以提示0不能做除数。
    SELECT 1
    GO 1
    ss=17
    FOR j=1 TO 5760
        sz13=Ss13
        ssy=sz13+(i-1)*30030
        ys=MOD(ssy,ss)
        IF ys=0
        else
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE Ss17 WITH ssy
      ENDIF  
      SELECT 1
      SKIP
    ENDFOR
 ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2025-05-19 22:18
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1431
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE D:\素数式新\素数式17.dbf ALIAS 素数式17
SELECT 2
USE D:\素数式新\素数式19.dbf ALIAS 素数式19
kssj=SECONDS()  &&取出开始时间
 FOR  i=1 TO 19  &&又遇到以前类似事情,外循环变量用了j与下面的内循环变量一致,所以提示0不能做除数。
    SELECT 1
    GO 1
    ss=19
    FOR j=1 TO 92160
        sz17=Ss17
        ssy=sz17+(i-1)*510510
        ys=MOD(ssy,ss)
        IF ys=0
        else
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE Ss19 WITH ssy
      ENDIF  
      SELECT 1
      SKIP
    ENDFOR
 ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

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



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

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