
这是leetcode上的一道简单题,但其中用了不少的数学知识(数学yyds);
因为这篇博客是我的一篇笔记,用来记录平时积累的知识。
而最近比较大的收获就是下面这个判断质数和计算质数个数的算法,这个算法的详细介绍来自leetcode题解。

以下附上实现代码(依然源自leetcode)
int countPrimes(int n) {
vector<int> isPrime(n, 1);
int ans = 0;
for (int i = 2; i < n; ++i) {
if (isPrime[i]) {
ans += 1;
if ((long long)i * i < n) {
for (int j = i * i; j < n; j += i) {
isPrime[j] = 0;
}
}
}
}
return ans;
}
共勉!
这篇博客记录了一种用于判断质数和计算质数个数的高效算法,该算法来源于LeetCode题解。通过使用位运算和动态更新,能够在O(n log log n)的时间复杂度内完成任务。核心代码包括一个动态维护的质数表,并通过平方根优化了内层循环。此算法对于理解和提升数学及算法能力极具价值。
5564

被折叠的 条评论
为什么被折叠?



