查看: 1736|回复: 9
收起左侧

Amazon : find all primes less than n

|只看干货 |刷题
头像被屏蔽

分享帖子到朋友圈
wwwyhx | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

上一篇:Google : find the largest possible number combination
下一篇:Google : 马戏团人塔问题
头像被屏蔽
 楼主| wwwyhx 2011-6-20 20:01:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

iveney 2011-6-23 01:17:24 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (58)
 
 
0% (0)    👎
Miller-Rabin test 简单又高效:

http://en.wikipedia.org/wiki/Miller-Rabin_test
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-6-24 18:24:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

iveney 2011-6-25 03:11:08 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (58)
 
 
0% (0)    👎
要说最简便的就是bitma, 一个32为int能包括的就6000多个prime
wwwyhx 发表于 2011-6-24 18:24



    what's bitma? bitmap? 建表算是 cheating 吧
回复

使用道具 举报

danielgao 2011-6-26 01:26:25 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (86)
 
 
3% (3)    👎
直接删除比一个个的找要快,如果n比较小
memset(a,0, sizeof(a[0])*n);
a[0] = a[1] = 1;
for (int i = 2; i < n; ++i)
   if (!a[i]) {
      for (int j = 2; i * j < n; ++j) a[i*j] = 1;
}

for (int i = 2; i < n; ++i)
   if (!a[i]) cout <<i<<" ";
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-6-26 16:22:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

lambda2fei 2012-9-3 17:13:25 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (1)
 
 
0% (0)    👎
用线性时间筛法可以在O(n)的时空复杂度内完成。
回复

使用道具 举报

CStick75 2012-9-6 21:44:10 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (1)
 
 
0% (0)    👎
小的用筛,大的概率算法吧……再大再大就近似吧………………
回复

使用道具 举报

头像被屏蔽
xoxggg 2012-9-9 23:18:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

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