问题标签 [sieve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
100 浏览

python - Failure to understand some prime sieve syntax

Could someone walk me line-by line through this prime sieve? I'm attempting to develop my own sieve but most of the faster ones contain syntax that I don't understand (like the lines i've made comments on). Sorry if this is sort of a newbie question -- also if you have any links that could help me with sieve writing they'd be greatly appreciated.

0 投票
0 回答
117 浏览

list - Haskell:(Eratothenese 的筛子)获取筛子的前 n 个素数

假设我有一个表达式,例如:

我将如何(在函数中)获取该列表的前n 个元素?我知道该take功能,但我不知道如何在这种情况下使用它。

我知道这个表达式创建了一个无限的素数列表。我试图找出提取前n 个素数。

0 投票
3 回答
73 浏览

python - 素筛返回一些奇怪的数字

我正在尝试开发一个素数筛,在纸上我的算法在纸上非常有意义,但在平方根上方的素数中返回一个非常短的合数选择。

例如,在 10,000(其平方根为 100)的限制(找到所有素数)的情况下,它与素数混合的合数是 115、119、121 和 125(都非常接近(及以上!)100)。

请让我知道我的代码有什么问题,哪些部分需要修复/如何修复。

澄清:我担心它返回的复合(非素数),在我的素数测试中我哪里出错了,我该如何纠正它?

到目前为止,这是我的筛子:

0 投票
2 回答
98 浏览

c++ - 在一个范围内寻找素数时的 Sigsegv 错误

在解决一个问题以在给定范围内查找素数时,我收到一个 Sigsegv 错误,我无法找到我的错误在哪里以及如何纠正它

0 投票
1 回答
188 浏览

c++ - 双重免费或损坏(fasttop):0x000000000063d070 *** c++筛程序

我正在用 C++ 编写一个筛子程序。但是对于每个合法输入,无论输入如何变化,程序总是产生具有 4 个素数和“2 3 5”的输出。当我尝试通过控制台运行程序时,它会给出一条错误消息,指出双重释放或损坏(fasttop):0x000000000063d070 ***。顺便说一句,我是 C++ 新手。而且,我正在尝试正确格式化输出,但它们只是飞来飞去。

这是所需的格式。

73 79 83 89 97 101 103 107 109 113 127 131 131 137 137 139 139 149 151 157 157 157 163 167 173 179 179 181 191 193 199 199 199 211 223 223 223 227 229 229 233 239 239 239 239 251 257 263 269 269 269 269 269 277 277 277 277 277 283 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 743 751 751 757 761 769 773 773 773 787 797 797 8109 8109 81821 823 823 827 827 829 839 853 853 857 859 859 859 859 877 777 799999999999999999999999999999999999999999999999999999999999999999999999999999999.979999999999999.99999999797999.9999999999页

0 投票
1 回答
69 浏览

python - 这种素数筛的实现是否适用于所有素数?还是只是侥幸(Python)

我已经对其进行了测试,它似乎至少可以在前 100 个素数上工作,它会准确地无限期地返回素数吗?(理论上不是字面意思)。

0 投票
1 回答
4910 浏览

c++ - value 需要 1000000000 字节,大于 max-value-size

我在 spoj.com 上遇到了这个问题

http://www.spoj.com/problems/PRIME1/

在阅读了一些关于素数生成算法的信息后,我发现“阿特金斯筛子”是最快的素数生成算法。在本教程http://www.geeksforgeeks.org/sieve-of-atkin/的帮助下,我已经部分实现了算法

当我运行代码时,它给了我分段错误。调试后我才知道这段代码不是最优的,它使用了更多的内存和存储空间。有人可以告诉我如何优化程序。这是我的代码片段。是的,它是不完整的。


0 投票
1 回答
122 浏览

c++ - 使用向量创建 SIEVE

我正在尝试用向量制作一个简单的筛子:

我是向量的新手,并试图用 seive 创建素数向量,但不知何故我得到了Bad_Alloc
任何人都可以具体说明这个错误的分配吗?
提前致谢

0 投票
2 回答
361 浏览

c - C - 埃拉托色尼筛 - BitField

我即将实施Eratosthenes 筛,并且有一个关于筛阵列的一般性问题。

我现在(在 C 中)已经多次实现了筛子,并且总是使用一个数组uint8_t(out of <stdint.h>)作为筛子。这是相当低的内存效率,因为每个数字都使用 8 位进行筛选,即使一位应该就足够了。

我将如何在 C 中解决这个问题?我需要一个位数组。我几乎可以创建任何类型的数组(uint8_t, uint16_t, uint32_t, uint64_t)并使用位掩码等访问单个位。

我应该更喜欢什么数据类型,我应该使用什么操作来访问这些位而不损失性能?

PS:我不认为这只是BitArray 实现的副本,因为它的问题是特定于 Eratosthenes 的筛子,因为它的主要性质需要高效(不仅在内存使用方面,而且在访问方面)。我在想,也许可以使用不同的技巧来提高筛分过程的效率......

0 投票
3 回答
1418 浏览

javascript - 在 Javascript 中实现 Eratosthenes 的页面分段筛

我最近读到了一个更快的 Eratosthenes 分段筛的实现,用于非常大的数字。

以下是相同的实现:

我似乎无法弄清楚我在哪里弄错了。可能是工作太久了。

例如:

sieve(4,10)应该返回[5,7] 但它正在返回[5,7,9]