数学中国

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

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

  [复制链接]
发表于 2021-8-27 17:22 | 显示全部楼层
SELECT 1
USE D:\VFP温习\L26二生素数表.DBF ALIAS 二生素数表
SELECT 2
USE D:\VFP温习\L26二生素数四.DBF ALIAS 二生素数四
SELECT 3
USE D:\vfp温习\L26四生素数统计表.DBF ALIAS 四生统计
kssj=SECONDS()
FOR m=18 TO 20
@ 15,22 say m
SELECT 2
DELETE ALL
PACK
SELECT  1
GO 1
    For i=1 TO  3736890-m &&这个位置一定把数值换成新表的记录条数
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=二生26中
    count next m+1 for 6*m=二生26中-A to js1
        IF js1=1
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 二26四 WITH A+3*m &&将N值付给素数式
         else
       ENDIF
      SELECT 1
      GO jl+1
     ENDFOR
   
     SELECT 2
     For j=1 to 9
      @ 3,6 say j
      fw=10^j
            SELECT 2
            GO 1
            COUNT ALL FOR fw>二26四 TO tj
              SELECT  3  &&打开盛放素数式的表
              APPEND BLANK     &&增加一条空记录
              REPLACE 范围 WITH fw
              REPLACE 跨度 WITH 6*m
              REPLACE 统计 WITH tj
              REPLACE k生 WITH 4
   ENDFOR
   endfor
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-29 12:20 | 显示全部楼层
SELECT 1
USE D:\素数式系数\素数表十亿.dbf ALIAS 素数表
SELECT 2
USE D:\素数式系数\第n组常数.dbf ALIAS 系数表
kssj=SECONDS()  &&取出开始时间
s=1.0000000000000000
  SELECT 1
  GO 4
      FOR i=1 TO 50876320
       @ 5,12 say i
      P=素数
      s=s*(1-1/(P-4)^2)
         SELECT 1
         SKIP
         ENDFOR
         
           SELECT 2
           APPEND BLANK     &&增加一条空记录
           REPLACE n值 WITH 4 &&将B值付给素数式
           REPLACE 常数 WITH s &&将B值付给素数式
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2021-9-2 08:06 | 显示全部楼层
SELECT 1
USE D:\三生素数中项合成\素数表十亿.DBF ALIAS 素表
SELECT 2
USE D:\三生素数中项合成\三生素数表.DBF ALIAS 三素表
kssj=SECONDS()
For i=1 to 50876324
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    cj=B-A
    SKIP 1
    PUBLIC C
    C=素数
    cj1=C-B
    IF cj=2 AND cj1=4
         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,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2021-9-2 14:34 | 显示全部楼层
CLEAR
SELECT 1
USE D:\三生素数中项合成\素数式至17.DBF ALIAS 素数式表
SELECT 2
USE D:\三生素数中项合成\素数表十万.DBF ALIAS 素数表
SELECT 3
USE D:\三生素数中项合成\三生素数表.DBF ALIAS 三素数表 &&当时仅改变了别名,没有改原名,在素数表亿新后增加了198-200周期素数,改正,并去掉了后续素数
*INPUT "请输入预先值 K= " TO yxk
*INPUT "请输入步长值 bcz= " TO bcz
*INPUT "请输入初始值 csz= " TO csz
*INPUT "请输入外循环起始值 xks= " TO xks
*INPUT "请输入外循环终结值 zds= " TO zds
bcz=510510  &&从2乘到17,即素数17的素数阶乘
kssj=SECONDS()                      &&取出开始时间
FOR i=1961 TO 1962
@12,10 SAY i
            &&调了下顺序,原来在FOR j=1 TO 92160 的下边,执行第一个外循环,提示已经到了表尾
FOR j=1 TO 8960
@ 5,12 say j
SELECT 1
GO j
sss=式17
bpz=sss+(i-1)*bcz               &&计算被判断值
Kf=INT(SQRT(bpz))                   &&求出被判断值的开方根
SELECT 2
GO 1
COUNT ALL FOR 素数<=kf TO jlh  &&借用原来的记录号,实际上统计kf以前的素数个数
                               && jlh=RECNO()
SELECT 2   
GO 8                                &&从第二条记录开始读取素数(3)
FOR k=1 TO jlh-7                     &&内循环开始。这个循环实质上是从小到大顺序,依次读取素数。循环值是记录序号
qmz=MOD(bpz,素数)                   &&以读取的素数为条件,对被判断值求模
IF qmz=0  OR qmz=4 OR qmz=6 && qmz=8  如果符合这四个约定条件之一,就进行相应工作.如果一个也没有符合条件的,直接使记录指针向下移动一个(SKIP)
EXIT                                &&因为符合条件,则做完相应工作后跳出内循环
ENDIF
SKIP                                &&素数表指针向下移动一个
ENDFOR
IF k>jlh-7
SELECT 3               &&打开保存求解结果的信息表
APPEND BLANK                        &&增加一条空记录
REPLACE 三素中 WITH bpz-3 && 把bpz赋给素数        
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
用三生素数生成元(至17的)制作三生素数中项。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-2 21:51 | 显示全部楼层
CLEAR
SELECT 1
USE D:\三生素数中项合成\素数式至17.DBF ALIAS 素数式表
SELECT 2
USE D:\三生素数中项合成\素数表十万.DBF ALIAS 素数表
SELECT 3
USE D:\三生素数中项合成\三生素数表.DBF ALIAS 三素数表 &&当时仅改变了别名,没有改原名,在素数表亿新后增加了198-200周期素数,改正,并去掉了后续素数
*INPUT "请输入预先值 K= " TO yxk
*INPUT "请输入步长值 bcz= " TO bcz
*INPUT "请输入初始值 csz= " TO csz
*INPUT "请输入外循环起始值 xks= " TO xks
*INPUT "请输入外循环终结值 zds= " TO zds
bcz=510510  &&从2乘到17,即素数17的素数阶乘
kssj=SECONDS()                      &&取出开始时间
FOR i=2201 TO 2250
@12,10 SAY i
            &&调了下顺序,原来在FOR j=1 TO 92160 的下边,执行第一个外循环,提示已经到了表尾
FOR j=1 TO 8960
@ 5,12 say j
SELECT 1
GO j
sss=式17
bpz=sss+(i-1)*bcz               &&计算被判断值
Kf=INT(SQRT(bpz))                   &&求出被判断值的开方根
SELECT 2
GO 1
COUNT ALL FOR 素数<=kf TO jlh  &&借用原来的记录号,实际上统计kf以前的素数个数
                               && jlh=RECNO()
SELECT 2   
GO 8                                &&从第二条记录开始读取素数(3)
FOR k=1 TO jlh-7                     &&内循环开始。这个循环实质上是从小到大顺序,依次读取素数。循环值是记录序号
qmz=MOD(bpz,素数)                   &&以读取的素数为条件,对被判断值求模
IF qmz=0  OR qmz=4 OR qmz=6 && qmz=8  如果符合这四个约定条件之一,就进行相应工作.如果一个也没有符合条件的,直接使记录指针向下移动一个(SKIP)
EXIT                                &&因为符合条件,则做完相应工作后跳出内循环
ENDIF
SKIP                                &&素数表指针向下移动一个
ENDFOR
IF k>jlh-7
SELECT 3               &&打开保存求解结果的信息表
APPEND BLANK                        &&增加一条空记录
REPLACE 三素中 WITH bpz-3 && 把bpz赋给素数        
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-2 22:26 | 显示全部楼层
SELECT 1
USE D:\素数式系数\素数表十亿.dbf ALIAS 素数表
SELECT 2
USE D:\素数式系数\第n组常数.dbf ALIAS 系数表
kssj=SECONDS()  &&取出开始时间
s=1.0000000000000000
  SELECT 1
  GO 2
      FOR i=1 TO 50876220
       @ 5,12 say i
      P=素数
      s=s*(1-1/(P-1)^2)
         SELECT 1
         SKIP
         ENDFOR
         
           SELECT 2
           APPEND BLANK     &&增加一条空记录
           REPLACE n值 WITH 1 &&将B值付给素数式
           REPLACE 常数 WITH s &&将B值付给素数式
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2021-9-5 09:41 | 显示全部楼层
CLEAR
SELECT 1
USE D:\三生素数中项合成\素数式至17.DBF ALIAS 素数式表
SELECT 2
USE D:\三生素数中项合成\素数表十万.DBF ALIAS 素数表
SELECT 3
USE D:\三生素数中项合成\三生素数表.DBF ALIAS 三素数表 &&当时仅改变了别名,没有改原名,在素数表亿新后增加了198-200周期素数,改正,并去掉了后续素数
*INPUT "请输入预先值 K= " TO yxk
*INPUT "请输入步长值 bcz= " TO bcz
*INPUT "请输入初始值 csz= " TO csz
*INPUT "请输入外循环起始值 xks= " TO xks
*INPUT "请输入外循环终结值 zds= " TO zds
bcz=510510  &&从2乘到17,即素数17的素数阶乘
kssj=SECONDS()                      &&取出开始时间
FOR i=3601 TO 3650
@12,10 SAY i
            &&调了下顺序,原来在FOR j=1 TO 92160 的下边,执行第一个外循环,提示已经到了表尾
FOR j=1 TO 8960
@ 5,12 say j
SELECT 1
GO j
sss=式17
bpz=sss+(i-1)*bcz               &&计算被判断值
Kf=INT(SQRT(bpz))                   &&求出被判断值的开方根
SELECT 2
GO 1
COUNT ALL FOR 素数<=kf TO jlh  &&借用原来的记录号,实际上统计kf以前的素数个数
                               && jlh=RECNO()
SELECT 2   
GO 8                                &&从第二条记录开始读取素数(3)
FOR k=1 TO jlh-7                     &&内循环开始。这个循环实质上是从小到大顺序,依次读取素数。循环值是记录序号
qmz=MOD(bpz,素数)                   &&以读取的素数为条件,对被判断值求模
IF qmz=0  OR qmz=4 OR qmz=6 && qmz=8  如果符合这四个约定条件之一,就进行相应工作.如果一个也没有符合条件的,直接使记录指针向下移动一个(SKIP)
EXIT                                &&因为符合条件,则做完相应工作后跳出内循环
ENDIF
SKIP                                &&素数表指针向下移动一个
ENDFOR
IF k>jlh-7
SELECT 3               &&打开保存求解结果的信息表
APPEND BLANK                        &&增加一条空记录
REPLACE 三素中 WITH bpz-3 && 把bpz赋给素数        
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
现在在准备资料,制作100亿内的三生素数表。
回复 支持 反对

使用道具 举报

发表于 2021-9-8 07:06 | 显示全部楼层
这个网站有编程能力的人大有人在。没有谁愿意去验证他人的成果。
回复 支持 反对

使用道具 举报

发表于 2021-9-8 16:36 | 显示全部楼层
SELECT 1
USE D:\素数式系数\素数表十亿.dbf ALIAS 素数表
SELECT 2
USE D:\素数式系数\第k组常数.dbf ALIAS 系数表
kssj=SECONDS()  &&取出开始时间
s=1.000000000000000000
  SELECT 1
  GO 24
      FOR i=1 TO 50876220
       @ 5,12 say i
      P=素数
      s=s*(1-1764/(P-42)^2)
         SELECT 1
         SKIP
         ENDFOR
         
           SELECT 2
           APPEND BLANK     &&增加一条空记录
           REPLACE k值 WITH 42 &&将B值付给素数式
           REPLACE 常数 WITH s &&将B值付给素数式
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2021-9-12 22:32 | 显示全部楼层
USE 第n组常数 AGAIN IN 0
SELECT 第n组常数
BROWSE LAST
USE
MODIFY COMMAND d:\素数式系数\计算梅腾斯公式推广公式的常数.prg AS 936
DO d:\素数式系数\计算梅腾斯公式推广公式的常数.prg
SELECT 系数表
BROWSE LAST
COPY TO d:\素数式系数\梅腾斯公式推广常数100全.xls TYPE XL5
USE
MODIFY COMMAND d:\素数式系数\计算梅腾斯公式推广公式的常数.prg AS 936
MODIFY PROJECT d:\素数式系数\素数式系数项目.pjx
MODIFY COMMAND d:\素数式系数\求三生素数的中项合成系数.prg AS 936
MODIFY COMMAND d:\素数式系数\求二生素数d10中项差合成数的系数.prg AS 936
MODIFY COMMAND d:\素数式系数\求k生素数系数特殊形式的值.prg AS 936
USE k生素数系数表 EXCLUSIVE IN 0
SELECT K生素数系数表
MODIFY STRUCTURE
SELECT K生素数系数表
BROWSE LAST
SELECT K生素数系数表
BROWSE LAST
USE
MODIFY COMMAND d:\素数式系数\求k生素数式系数p大于总跨度.prg AS 936
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
SELECT 三素数表
BROWSE LAST
USE
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
SELECT 三素数表
BROWSE LAST
USE
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
SELECT 三素数表
BROWSE LAST
MODIFY PROJECT d:\素数式系数\素数式系数项目.pjx
USE 第k组常数 AGAIN IN 0
SELECT 第k组常数
BROWSE LAST
USE
MODIFY COMMAND d:\素数式系数\求2对k生素数合成常数.prg AS 936
DO d:\素数式系数\求2对k生素数合成常数.prg
MODIFY COMMAND d:\素数式系数\求2对k生素数合成常数.prg AS 936
DO d:\素数式系数\求2对k生素数合成常数.prg
MODIFY COMMAND d:\素数式系数\求2对k生素数合成常数.prg AS 936
SELECT 系数表
BROWSE LAST
COPY TO d:\素数式系数\2对k生素数的公共系数值50.xls TYPE XL5
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY PROJECT d:\三生素数中项合成\三生中项.pjx
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
USE 三生素数表 AGAIN IN 0
SELECT 三生素数表
BROWSE LAST
GO bottom
USE
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
MODIFY COMMAND d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg AS 936
DO d:\三生素数中项合成\用生成元至素数17制作三生素数中项.prg
SELECT 三素数表
BROWSE LAST
?RECCOUNT()
COUNT ALL FOR 三素中<1000000000 TO tj
?tj
COUNT ALL FOR 三素中<2000000000 TO tj
?tj
COUNT ALL FOR 三素中<3000000000 TO tj
?tj
COUNT ALL FOR 三素中<4000000000 TO tj
?tj
?682843-379508
?965356-682843
?1234356-965356
USE
这是些操作记录(vfp编程的命令窗口)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 23:35 , Processed in 0.098434 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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