问题标签 [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 投票
1 回答
87 浏览

performance - Prime sieve 导致(我要去)堆栈溢出

0 投票
2 回答
498 浏览

algorithm - 使用 N 的平方根与 N/2 检查 N 是否为质数有什么好处?

是否需要删除迭代来检查一个数字是否是素数?

前任。37 是素数,检查 18.5(37 的一半)与 6.08(平方根)会减少很多工作,但两者都遵循相同的原则?

抱歉问,我试图巩固我使用数字的平方根来确定它是否是质数的逻辑,并试图向其他人解释它

0 投票
1 回答
52 浏览

python - 查看一个素筛程序,但不确定为什么它不断出现关于切片长度的错误

问题出现在第 5 行我知道实施[False] * ((n-i*i-1)/(2*i)+1)工作,但我不知道为什么。

0 投票
2 回答
138 浏览

java - 提高 Sieve 方法的性能

我正在编写一种方法来找到 n(Eratosthenes 筛)的素数,是的,这是为了家庭作业。我希望在我编写的方法中提高性能。过去几天我一直在调整它,但无法遵循给出的伪代码并提高性能。

伪代码如下:
创建一个数字队列来处理
用整数 2 到 n 填充队列
创建一个空的结果队列来存储素数
重复以下步骤:
通过从数字队列中删除第一个值来获得下一个素数 p
将 p 放入素数的结果队列
循环遍历数字队列,消除所有可被 p 整除的数字,
而(p 小于 n 的平方根)
所有剩余的值都是素数,因此将它们转移到素数结果队列

这是我目前的方法:

0 投票
2 回答
4294 浏览

arrays - 将元素添加到数组 - 帕斯卡

该代码适用于查找素数,我需要的是一个仅包含素数的新数组。打印这个时,它有零,因为它的大小相同。任何帮助表示赞赏。谢谢。

0 投票
1 回答
172 浏览

c++ - 生成素数 C++ 的筛链

我正在尝试将找到的每个质数输入到“筛子”对象链中。下面的代码实现了我最终想要做的事情,但是每个筛子(素数)类都是手动实现的(检查后续数字是否可以被存储的素数整除,然后它们应该被丢弃,否则它们应该被转发到下一个筛子链),有没有一种方法可以动态地做到这一点,即每次找到一个新的素数时,我都必须创建一个筛子对象。任何帮助深表感谢。

0 投票
1 回答
396 浏览

java - 保罗·鄂尔多斯猜想 [Java]

我一直试图在 SPOJ 上解决这个相当简单的问题:http ://www.spoj.com/problems/HS08PAUL/ 。

它需要找出可以以 x^2+y^4(其中 x 和 y 是整数)的形式表示的素数(小于 n)的数量。

我提出了一个蛮力解决方案,该解决方案占用了相当长的时间(n ~= 1000000),导致引擎抛出 TLE(超出时间限制)错误。这是源代码:

有没有一种方法可以使这种方法发挥作用?

PS:请忽略不守规矩的异常处理。

0 投票
1 回答
739 浏览

primes - 使用素数/二次因式分解 (C#) 查找大整数的除数数

我正在尝试获取 64 位整数(大于 32 位)的除数

我的第一种方法(对于小数)是将数字除以直到结果数为 1,计算匹配素数的数量并使用公式 (1 + P1) (1+ P2) ..*(1 + Pn) = Number除数的

例如:

24 = 2 * 2 * 2 * 3 = 2^ 3 * 3^ 1

==> ( 3 + 1)*( 1 + 1) = 4 * 2 = 8 除数

但是对于大整数,这种方法需要多次迭代。我找到了一种名为Quadratic sieve的方法来使用平方数进行因式分解。现在使用我的脚本,这会容易得多,因为数字要小得多。

我的问题是,我怎样才能实现这个二次筛?

0 投票
1 回答
171 浏览

j - J 素数枚举

J 将通过 p:n 回答第 n 个素数。

如果我要求第 1 亿个素数,我几乎可以立即得到答案。我无法想象 J 会那么快地筛选那个素数,但也没有在表中查找它,因为该表的大小约为 1GB。

有一些方程给出了质数数量的近似值,但它们只是近似值。

J怎么这么快就找到答案了?

0 投票
0 回答
127 浏览

c - 在给定范围内使用 sundaram 筛 (b,a)

我使用以下代码生成了一个简单的筛子-

但我想消除用于查找素数到 b 的额外时间,为此我制作了 m = (ab)/2 并尝试从 b/2 和 sqrt b/2 而不是零开始主 for 循环,但它没有似乎工作,我怎样才能减少额外的计算?提前致谢。