由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 贴个find kth prime number的CODE并请教。。。
相关主题
一道算法题目怎么准备bloomberg电面?
请教大牛: Time complexity of SIEVE OF ERATOSHENES谁有C++ Prime 4th Edition的习题答案吗?
经典题:找前N个质数新鲜Amazon电面经
请教:find Kth prime number`这个符号怎么读
leetcode N-Queens II 我的c++要400多毫秒有人做facebook的first or last这道题吗?
leetcode-- scramble stringgoogle这题太玩人了吧
问道题: prime factor[算法]打印所有因子乘积组合
分享一道trading firm的code screen,只能用c++阿家Prime组新鲜面经
相关话题的讨论汇总
话题: upperbound话题: int话题: bool
进入JobHunting版参与讨论
1 (共1页)
u*****o
发帖数: 1224
1
最近这道题很火爆!我找来貌似最EFFICIENT的CODE看(就是传说中的SIEVE OF
ERATOSHENES,多高端的名字!!),发现这么一行
请大家看第三行,第四行。。。为什么要用MEMSET这个function呢。。bool
array的话默认就是0吧。。。是不是为了省MEMORY呢?我直觉是。。。
走过路过的牛牛们指点一下吧。。。
void runEratosthenesSieve(int upperBound) {
int upperBoundSquareRoot = (int)sqrt((double)upperBound);
bool *isComposite = new bool[upperBound + 1];
memset(isComposite, 0, sizeof(bool) * (upperBound + 1));
for (int m = 2; m <= upperBoundSquareRoot; m++) {
if (!isComposite[m]) {
cout << m << " ";
for (int k = m * m; k <= upperBound; k += m)
isComposite[k] = true;
}
}
for (int m = upperBoundSquareRoot; m <= upperBound; m++)
if (!isComposite[m])
cout << m << " ";
delete [] isComposite;
}
p*****2
发帖数: 21240
2
这是啥东西呀?
u*****o
发帖数: 1224
3
这个就是找kth prime number的算法啊。。二爷咋会不知呢,又逗我这个傻姑娘了。。
p*****2
发帖数: 21240
4
这题我刚好昨天做了一下。能说说你的算法吗?
p*****2
发帖数: 21240
5
这个不太像是找第k个的呀。
r*********n
发帖数: 4553
6
upperBound是什么?比如让你找第999个prime number,你怎么确定upperBound呢?
r**h
发帖数: 1288
7
使用素数定理

【在 r*********n 的大作中提到】
: upperBound是什么?比如让你找第999个prime number,你怎么确定upperBound呢?
r*********n
发帖数: 4553
8
999/N = 1/lnN
这还要数值解一个超越方程,还不如用简单的primarity testing了

【在 r**h 的大作中提到】
: 使用素数定理
r**h
发帖数: 1288
9
the guys in GOOG will ask you to provide the upper bound otherwise you'll be
rejected lol

【在 r*********n 的大作中提到】
: 999/N = 1/lnN
: 这还要数值解一个超越方程,还不如用简单的primarity testing了

r*********n
发帖数: 4553
10
那只能说运气衰了
PS: 用简单的primarity testing,可以把已经找到的prime都存到一个hash set里面,
然后当set.size()==k的时候就停止。

be

【在 r**h 的大作中提到】
: the guys in GOOG will ask you to provide the upper bound otherwise you'll be
: rejected lol

相关主题
leetcode-- scramble string怎么准备bloomberg电面?
问道题: prime factor谁有C++ Prime 4th Edition的习题答案吗?
分享一道trading firm的code screen,只能用c++新鲜Amazon电面经
进入JobHunting版参与讨论
s**x
发帖数: 7506
11
今早突然想到, 仍然用筛子, 原先是用一个数去筛掉所有不是的, 你可以建立一个
已经得到的素数的 vector, 然后对每个数用这个 vector 的数来除就可以了。
vector primes;
primes.push_back(2);
for (int i=3; primes.size() < K; i+=2) {
bool isprime = true;
for(int j=0; j < primes.size(); j++) {
if (i % primes[j] == 0) {
isprime = false;
break;
}
}
if (isprime) primes.pushback(i);
}
return primes[K-1]; :)
r********d
发帖数: 7742
12
介个问题问得很natural!

【在 r*********n 的大作中提到】
: upperBound是什么?比如让你找第999个prime number,你怎么确定upperBound呢?
l*****s
发帖数: 774
13
二爷贴一下code吧,谢谢

【在 p*****2 的大作中提到】
: 这题我刚好昨天做了一下。能说说你的算法吗?
p*****2
发帖数: 21240
14

贴在另外一个帖子里了。你看看对不对。

【在 l*****s 的大作中提到】
: 二爷贴一下code吧,谢谢
u*****o
发帖数: 1224
15
好的,放到1楼了,的确不是找kth prime的,而是找1-N之间的所有素数。。囧

【在 p*****2 的大作中提到】
: 这题我刚好昨天做了一下。能说说你的算法吗?
u*****o
发帖数: 1224
16
是我没说清。。这题是找2-N之间的素数,不是找KTH PRIME的。。如果要找,是不是得
加个counter

【在 r*********n 的大作中提到】
: upperBound是什么?比如让你找第999个prime number,你怎么确定upperBound呢?
w**x
发帖数: 362
17
传统的 SIEVE OF ERATOSHENES
Time complexity 怎么分析? wiki 是 nloglog(n)
1 (共1页)
进入JobHunting版参与讨论
相关主题
阿家Prime组新鲜面经leetcode N-Queens II 我的c++要400多毫秒
关于质数(prime number)的算法题leetcode-- scramble string
Amazon电面两题问道题: prime factor
IXL 电话面经分享一道trading firm的code screen,只能用c++
一道算法题目怎么准备bloomberg电面?
请教大牛: Time complexity of SIEVE OF ERATOSHENES谁有C++ Prime 4th Edition的习题答案吗?
经典题:找前N个质数新鲜Amazon电面经
请教:find Kth prime number`这个符号怎么读
相关话题的讨论汇总
话题: upperbound话题: int话题: bool