sieve-of-eratosthenes相关内容

埃拉托色尼的筛子,产生质数。循环的问题

我正在尝试使用Eratosthenes算法的筛子来生成n个素数。我对它进行了调试,发现在某个时候,它会开始删除已经删除的号码。我不知道出了什么问题,但我敢肯定是我的圈圈出了问题。你能帮帮我吗? import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; publi ..
发布时间:2022-04-09 23:07:20 Java开发

C++数组分配分段错误11新手

我正在通过 Robert Sedgewick 的 C++ 算法学习 C++.现在,我正在研究 Eratosthenes 筛,用户指定了最大素数的上限.当我以最大 46349 运行代码时,它会运行并打印出最多 46349 的所有素数,但是当我以最大 46350 运行代码时,会发生分段错误.谁能帮忙解释一下原因? ./sieve.exe 463492 3 5 7 11 13 17 19 23 29 ..

F#中埃拉托色尼的筛子

我对在纯函数 F# 中实现 eratosthenes 筛分 感兴趣.我对实际筛的实现感兴趣,不是天真的功能实现那不是真正的筛子,所以不是这样的: let rec PseudoSieve list =匹配列表|hd::tl ->hd :: (PseudoSieve x % hd 0) tl)|[] ->[] 上面的第二个链接简要描述了一种需要使用多重映射的算法,据我所知,该算法在 F# 中不 ..
发布时间:2022-01-05 09:33:20 其他开发

降低埃拉托色尼筛法的空间复杂度以生成范围内的素数

在阅读一些SO 帖子后,我发现 Eratosthenes 筛网 是最好的 &生成素数的最快方法. 我想在两个数字之间生成质数,比如 a 和 b. AFAIK,在 Sieve 的方法中,空间复杂度是 O(b). PS:我写的是Big-O而不是Theta,因为不知道能不能减少空间需求. 我们能否降低埃拉托色尼筛网的空间复杂度? 解决方案 如果您有足够的空间来存储直到 s ..

埃拉托色尼筛法 - 寻找素数 Python

澄清一下,这不是家庭作业问题:) 我想为我正在构建的数学应用程序找到质数 &遇到了Eratosthenes筛分方法. 我已经用 Python 编写了它的实现.但它非常慢.例如,如果我想找到所有小于 200 万的素数.需要> 20 分钟.(我在这一点上停止了它).我怎样才能加快速度? def primes_sieve(limit):极限 = 极限+1素数 = 范围(2,limitn)对 ..
发布时间:2021-12-17 14:26:04 Python

双流馈送以防止不必要的记忆?

我是 Haskell 的新手,我正在尝试以流处理风格实现 Euler's Sieve. 当我查看 有关素数的 Haskell Wiki 页面时,我发现了一些神秘的流优化技术.在该维基的 3.8 线性合并中: primesLME = 2 : ([3,5..] `minus` joinL [[p*p, p*p+2*p..] | p " 怎么会这样?我不知道它是如何工作的. 解决方案 通 ..

埃拉托色尼筛算法的时间复杂度

来自维基百科: 算法的复杂度为O(n(logn)(loglogn)) 位操作. 你是如何得出这个结论的? 包含 loglogn 术语的复杂性告诉我某处有一个 sqrt(n). 假设我在前 100 个数字上运行筛子 (n = 100),假设将数字标记为复合需要恒定时间(数组实现),我们使用 mark_composite() 类似于 n/2 + n/3 + n/5 + n/7 ..

寻找素数的程序

我想找到 0 和 long 变量之间的质数,但我无法得到任何输出. 程序是 使用系统;使用 System.Collections.Generic;使用 System.Linq;使用 System.Text;命名空间 ConsoleApplication16{课程计划{无效的素数(长数){bool isPrime = true;for (int i = 0; i 谁能帮我找出程序中可能存 ..
发布时间:2021-12-02 14:05:03 C#/.NET

Eratosthenes 的素数顺序比并发快吗?

我目前正在编写一个程序,该程序首先通过 Eratosthenes 筛分顺序生成素数,然后同时生成.该算法的并发版本应该比顺序版本快,但在我的情况下,并发版本大约是.慢了 10 倍.我想知道与顺序解决方案中的主线程相比,我在哪里将额外的工作放在我的线程上.这是我的程序(准备阅读一下!): Primes.java: 公共抽象类素数{字节[] bitArr;int maxNum;最终 int[] ..

用 Eratosthenes 筛法寻找素数(原文:有没有更好的方法来准备这个数组?)

注意:下面的第 2 版使用 Eratosthenes 筛.有几个答案对我最初提出的问题有所帮助.我选择了 Eratosthenes 筛法,实施了它,并适当地更改了问题标题和标签.感谢所有帮助过的人! 简介 我编写了这个奇特的小方法,它生成一个 int 数组,其中包含小于指定上限的素数.效果很好,但我有一个顾虑. 方法 private static int [] generate ..
发布时间:2021-11-18 02:58:12 Java开发

为什么函数应用会抱怨长列表?

作为一些欧拉难题的一部分,我正在尝试编写一个Eratosthenes 的筛选 与分解轮.到目前为止,我的代码是: (defun ring (&rest content)"返回一个包含内容中元素的循环列表.返回的列表从内容的第一个元素开始."(setf (cdr (last content)) 内容))(defun factorization-wheel (lst)"返回一个包含因式分解的循环列表 ..

运行时错误 (NZEC) Java SPOJ

我正在尝试做一个名为 Prime Generator 的 SPOJ 问题.虽然输出在我的计算机上工作,但当我尝试在 SPOJ 上运行它时它不起作用.出现以下错误消息. 错误:运行时错误 (NZEC) 你能帮我找出它是什么吗? import java.util.BitSet;导入 java.util.Scanner;类 Prime_generator {公共静态无效主(字符串 [] a ..
发布时间:2021-07-13 20:05:24 Java开发

了解 Python 中的埃拉托色尼筛法

我在 python 中找到了一个示例代码,它给出了 n 之前的所有质数,但我就是不明白,为什么它会这样做? 我已阅读有关 埃拉托色尼筛网 的维基百科文章,但根本不知道这是如何工作的. pp = 2ps = [pp]lim = raw_input("生成素数到多少?:")当 pp 对循环如何工作的解释将不胜感激. 编辑 - 发现代码全错了,因为它表示 25 作为素数,通过更深入的搜 ..
发布时间:2021-06-21 18:53:37 Python

在其过滤过程中使用局部状态突变的方案中的 Eratosthenes 筛选

虽然回答最近的问题我想出了以下代码,实现了 Eratosthenes 筛的变体,反复剔除初始 2...n 序列,尽可能早地停止: (define (sieve2 n)(让 ((ls (makelist n)))(让循环((ls ls)(下一个 (sievehelper2 ls n)))(如果(空?下一个)ls(缺点(汽车ls)(循环下一个 (sievehelper2 ls n)))))))(定义 ..
发布时间:2021-06-21 18:53:05 其他开发

大量的埃拉托色尼筛法 C++

就像这个问题,我也在研究埃拉托色尼的筛子.同样来自“使用 c++ 的编程原理和实践"一书的第 4 章.我能够正确实现它,并且它完全按照练习要求运行. #include #include 使用命名空间标准;int main() {无符号整数量 = 0;cin >>数量;向量整数;for (unsigned int i = 0; i 现在,我将如何处理 amount 输入中的大数字?unsign ..
发布时间:2021-06-21 18:52:39 C/C++开发