boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一道面试题
相关主题
onsite面试题一道
问道题: prime factor
求两个有序数组的median的平凡解法?
请教Java Garbage Collection
leetcode的count and say
贡献两道的面试题
Leetcode上Two sum只能过3个case, VS能过,大牛进来看看是怎么回事
一道微软面试题
求教一道面试题
google 面试题疑问
相关话题的讨论汇总
话题: int话题: counts话题: count话题: prime
进入JobHunting版参与讨论
1 (共1页)
x*****0
发帖数: 452
1
给定一个range(int a, int b),找到这个range里面的good number, good number的
定义是:所有组成它的prime factor的个数也是个prime number。
例子:
input: range [1 10]
good number: 6, 10
一个很直观的解法就是对数组中的树一个个去做prime factorization, 然后count。
请问有更加高效的解法吗?
b********0
发帖数: 62
2
在筛选法之上再加一点 感觉可以做

【在 x*****0 的大作中提到】
: 给定一个range(int a, int b),找到这个range里面的good number, good number的
: 定义是:所有组成它的prime factor的个数也是个prime number。
: 例子:
: input: range [1 10]
: good number: 6, 10
: 一个很直观的解法就是对数组中的树一个个去做prime factorization, 然后count。
: 请问有更加高效的解法吗?

x*****0
发帖数: 452
3
请问可以稍稍说的再详细一点吗?

【在 b********0 的大作中提到】
: 在筛选法之上再加一点 感觉可以做
i********y
发帖数: 34
4
class Solution {
vector counts;
public:
int getPrimeCount(int n, int k) {
while (1) {
// make sure k is prime
while (k < n && counts[k] != 1) ++k;
if (n%k == 0) {
while (n%k == 0) n /= k;
return counts[n] + 1;
}
++k;
}
}
vector solve(int n) {
counts.resize(n + 1);
vector ret;
for (int i = 2; i <= n; ++i) {
int count = getPrimeCount(i, 2);
counts[i] = count;
if (counts[count] == 1) ret.push_back(i);
}
return ret;
}
};

【在 x*****0 的大作中提到】
: 给定一个range(int a, int b),找到这个range里面的good number, good number的
: 定义是:所有组成它的prime factor的个数也是个prime number。
: 例子:
: input: range [1 10]
: good number: 6, 10
: 一个很直观的解法就是对数组中的树一个个去做prime factorization, 然后count。
: 请问有更加高效的解法吗?

1 (共1页)
进入JobHunting版参与讨论
相关主题
google 面试题疑问
问个amazon面试题
问个google面试题
问道amazon的面试题,谢谢
sliding window面试题
面试题求解
想请教一道面试题
请教SQL面试题
问一道F家的考古题
问一个老题目
相关话题的讨论汇总
话题: int话题: counts话题: count话题: prime