数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 4173|回复: 4

生成不小于某个自然数的n个素数的素数表的一个方法

[复制链接]
发表于 2005-7-31 09:29 | 显示全部楼层 |阅读模式
[这个贴子最后由zhaolu48在 2005/08/01 08:28am 第 1 次编辑]

     生成不小于某个自然数的n个素数的素数表的一个方法
  昨天还在这里找到了一个为证哥猜而找素数表发愁的帖子,今天却找不到了。
  素数表里最大的素数能有多大?并且查起来也很麻烦。
  对于数论爱好者,编程生成大于某个自然数的素数应该是很容易的一件事情。
  如果连这件事情都作不来,我有点怀疑他证明哥猜的能力是否具备。
  下面给出一个在VF语言环境下生成大于某个自然数的n个素数的素数表的程序:
  先建一个名称为SSB.dbf的数据库,其结构为:
Field   字段名       类型         宽度   
      1   SS          数值型         20   
      2   CZ          数值型          8   
  字段SS是用来存储素数的,
  字段CZ是当前素数与前一个素数的差。
  由结构知,生成的最大素数要不大于3*10^19
程序名称为SSS.prg:
CLEAR ALL
CLEAR
SET talk  off
DIMENSION a(2)
use ssb
acce ';要删除原来的记录吗(删除键入“y”/否则回车) ';to pp
IF pp=';y';
DELETE ALL
PACK
ENDIF
inpu ';输入要生成的素数的下界: ';to p
inpu ';输入要生成的素数的个数: ';to q
q=q-1
sja=TIME()
IF p/2=INT(p/2)
p=p+1
ENDIF
ka=0
m=10^19
kb=0
FOR i=p to m step 2
IF ka>q
EXIT
ENDIF
k=INT(SQRT(i))+1
pb=1
FOR j=2 to k
b=(i/j)*1.000000000000000
c=INT(b)
IF b=c
pb=0
a(1)=0
EXIT
ELSE
a(1)=i
ENDIF
endf
IF pb=0
LOOP
ELSE
IF kb>0
a(2)=a(1)-kb
ENDIF
APPEND FROM ARRAY a
?a(1),a(2)
kb=a(1)
ka=ka+1
ENDIF
endf
sjb=TIME()
SET TALK ON
?sja,'; ';,sjb
用此程序在我的电脑上生成大于10^10的1000个连续素数用时3分零9秒。
 楼主| 发表于 2005-7-31 09:56 | 显示全部楼层

生成不小于某个自然数的n个素数的素数表的一个方法

为什么在我的帐子上要出现
“快速操作: | 锁定此帖,不允许别人回复 | 删除此帖 | ”
的字样
发表于 2005-7-31 22:15 | 显示全部楼层

生成不小于某个自然数的n个素数的素数表的一个方法

那是给你的权利
 楼主| 发表于 2005-8-1 17:12 | 显示全部楼层

生成不小于某个自然数的n个素数的素数表的一个方法

为什么别人的没有呢?
发表于 2009-10-6 02:09 | 显示全部楼层

生成不小于某个自然数的n个素数的素数表的一个方法

“蠢货”(ygq的马甲)你,为什么到现在仍然还是“蠢货” ???
“蠢货”(ygq的马甲 )你,“意淫”很开心吗???“意淫”很生猛吧???
少“添乱”就是多作“贡献”啦。网络时代的“蠢货”还特别多,唉,……
人“蠢”就安静些嘛,没有人硬要“蠢货”(ygq的马甲 )你出来的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 11:13 , Processed in 0.068359 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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