| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1638 人关注过本帖
标题:求素数
只看楼主 加入收藏
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
由于机器限制,直接不能做出,怎样分配好内存是关健。本人能力有限,希望高手解决,从中学习。

谁有强殖装甲第二部,可以Q我460054868
2006-10-18 17:36
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

可以用埃拉托斯特尼筛法。

我在网吧没编译器,我只给算法。

例如第一步,列出以2开头的序列:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25·····
第二步,标出序列中的第i个素数(i=1,i<=n),变成:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ·····
第三步,将剩下序列中,从第i项开始划掉它的倍数(i=1,i<=n),变成:

2 3 5 7 9 11 13 15 17 19 21 23 25 ······
第四步,如果现在这个序列中最大数小于第i个素数的平方,那么剩下的序列中所有的数都是素数,否则返回第二步。

c99 标准中有个long long 类型应该可以存下999999999999999 ,C-free 4.0好象支持C99标准。



由于工作,N久都没来了!
2006-10-18 19:31
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

”C语言学习者“ 试编看看。把运行结果的图贴出来。


由于工作,N久都没来了!
2006-10-18 19:43
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用shuaiye在2006-10-18 19:31:14的发言:

可以用埃拉托斯特尼筛法。

我在网吧没编译器,我只给算法。

例如第一步,列出以2开头的序列:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25·····
第二步,标出序列中的第i个素数(i=1,i<=n),变成:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ·····
第三步,将剩下序列中,从第i项开始划掉它的倍数(i=1,i<=n),变成:

2 3 5 7 9 11 13 15 17 19 21 23 25 ······
第四步,如果现在这个序列中最大数小于第i个素数的平方,那么剩下的序列中所有的数都是素数,否则返回第二步。

c99 标准中有个long long 类型应该可以存下999999999999999 ,C-free 4.0好象支持C99标准。


请问999999999999999个数是怎么保存的?


2006-10-18 19:58
husi
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2006-10-17
收藏
得分:0 
double是8字节,足够存储上面那个数了。

2006-10-18 20:02
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
[QUOTE]

c99 标准中有个long long 类型应该可以存下999999999999999 ,C-free 4.0好象支持C99标准。


请问999999999999999个数是怎么保存的?

[/QUOTE]

拜托把我说的看清楚。

由于工作,N久都没来了!
2006-10-18 20:08
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用husi在2006-10-18 20:02:03的发言:
double是8字节,足够存储上面那个数了。

我不是数的大小,而是说用他那个算法,要保存那个序列,要多大空间啊?
999999999999999=10^16-1

就算每个数4字节.

10^16*4(B)=4*10^7 (G)


2006-10-18 20:10
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
直接分配这么大个空间肯定不行。能不能想想有没有什么分段的办法。

由于工作,N久都没来了!
2006-10-18 20:20
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
我没编译器啊!

由于工作,N久都没来了!
2006-10-18 20:20
whoamiiamye
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-10-18
收藏
得分:0 
999999999999999数太大了吧~!如果是试题的话,会不会要你对这个数在编辑转化下吧~!

2006-10-18 20:22
快速回复:求素数
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013580 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved