用C语言怎么产生一个随机素数

ilovejqx 2007-04-07 07:05:21
请大虾指教,100分相送
...全文
2446 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
linux_is_perfect 2007-04-10
  • 打赏
  • 举报
回复
先把素数找出来存到一个数组里面 想找多少自己定义 自己找,用sqrt(MAXtemp)可以更快一点
比如说找1000个,那自己定义一个1000大小的数组,num[1000]
然后int n = rand()%1000
num[n]即为随机的素数了
不知道说明白了没有
自然框架 2007-04-09
  • 打赏
  • 举报
回复
建立一个表,把素数扔进去一百二百的,建立一个索引,然后再随即产生一个数值,根据这个值到表里面提取数据。

素数可以放在数据库里,也可以放在文本文件里面,其他的地方也可以。
nicejane 2007-04-09
  • 打赏
  • 举报
回复
可以先建一张素数表.或者数组.如:s[100]
然后产生一个1--100的隋机数 a.
则s[a]即为所需隋机数.
qxbnit 2007-04-09
  • 打赏
  • 举报
回复 1

....

如果我内存不够用,CPU却很空闲也建表?

尤其例如嵌入式...
R_129 2007-04-09
  • 打赏
  • 举报
回复
rand()%100
做个细解...
我是菜鸟
mbmseason 2007-04-09
  • 打赏
  • 举报
回复
lz要随机素数不会是用来做RSA加密的吧。
建议去网上搜索一下Miller-Rebin算法,就是用来生成随机素数的。
mbmseason 2007-04-09
  • 打赏
  • 举报
回复
LZ取随机素数的目的不会是用来做RSA加密的吧。
建议参考一下Miller-Rebin算法,是用来随机生成素数的。网上有,搜一下吧。
hzhiyang84 2007-04-09
  • 打赏
  • 举报
回复
for(i=2;i<sqrt(iPrime);i++)
{
---应当是i<=sqrt(iPrime)

昨天俺更衣时突然想起,回来一看,有人回了,呵呵
MagiSu 2007-04-08
  • 打赏
  • 举报
回复
同上,想法怎么都给你们说了。
chenhu_doc 2007-04-08
  • 打赏
  • 举报
回复
汗。
jixingzhong 2007-04-08
  • 打赏
  • 举报
回复
#define LEN=??

int PTable[LEN]={2,3,5,7,11,...};

srand(time(NULL));
int index=rand()%LEN;

得到的随即素数为: PTable[index] 即是。
jixingzhong 2007-04-08
  • 打赏
  • 举报
回复
建议方法:

使用素数表,
随机数生成为 这个素数表索引,
得到的就是一个随即素数 ·········
buggycode 2007-04-08
  • 打赏
  • 举报
回复
for(i=2;i<=sqrt(iPrime);i++)
这个会不会太慢了。


建立个素数向量,随机取此向量索引即可
这个好像比较快,但是怎么建这个表,多大,建表时间是不是很长
netxuning 2007-04-08
  • 打赏
  • 举报
回复
学习...
stonepeter 2007-04-08
  • 打赏
  • 举报
回复
for(i=2;i<sqrt(iPrime);i++)
{
---应当是i<=sqrt(iPrime)
wwi875 2007-04-08
  • 打赏
  • 举报
回复
jixingzhong(瞌睡虫·星辰) 的方法不错
hehe
mychivas 2007-04-08
  • 打赏
  • 举报
回复
喜欢jixingzhong(瞌睡虫·星辰) 的方法
agaric 2007-04-08
  • 打赏
  • 举报
回复
准备好几千个,随机在里面取。。。
ljlj1203 2007-04-08
  • 打赏
  • 举报
回复
没我的份了,站墙脚去
thinkinnight 2007-04-08
  • 打赏
  • 举报
回复
jixingzhong(瞌睡虫·星辰) 的方法不错,赞
加载更多回复(18)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧