埃拉托斯特尼素数筛法到一百万 C++

2024-02-07

所以我需要有关我的代码的帮助。由于某种原因,当我输入超过 500,000 的数字时,它不断崩溃。这是确切的分配。

实现埃拉托色尼筛法并用它来查找所有素数 数量小于或等于一百万。使用结果 证明哥德巴赫猜想对于 4 到 4 之间的所有偶数 100万,含在内。

使用以下声明实现一个函数:

void sieve(int array[], int num);

该函数采用整数数组作为其参数。数组 应初始化为值 1 到 1000000。 函数修改数组,以便仅保留素数; 所有其他值均归零。

必须编写此函数以接受任意整数数组 尺寸。您必须输出 1 到 1 之间的所有素数 1000000,但是当我测试你的函数时,它可能位于 a 的数组上 不同的尺寸。

使用以下声明实现一个函数:

void goldbach(int array[], int num);

该函数采用与前一个函数相同的参数 并用两个显示 4 到 1000000 之间的每个偶数 添加到它的质数。

这里的目标是提供有效的实施。这 表示在确定是否时不进行乘法、除法或模运算 一个数是素数。这也意味着第二个函数必须找到 有效地得到两个素数。

程序的输出:

1 到 1000000 之间的所有素数 4 到 1000000 之间的所有偶数以及两个素数 总和为它的数字。

不要提供该项目的输出或会话记录!

这是我到目前为止所拥有的。如果有人能帮助我那就太好了。

#include <iostream>
using namespace std;

void sieve (int array[], int num);

int main()
{
    int num;
    cout << "Enter a number to calculate up to." << endl;
    cin>> num;
    if ( num < 2 )
        return 0;

    int array[num];
    array[0]= array[1]= 0;
    for ( int i= 2; i < num; ++i )
        array[i]= i;
    sieve(array,num);
    for (int i=0; i<num; i++)
        if (array[i] > 0)
            cout << array[i] <<" "<<endl;
    cout<<endl;

    return 0;
}

void sieve( int array[], int num )
{
    for ( int i= 0; i < num; ++i )
    {
        if ( array[i] != 0 )
        {
            for ( int j= i+i; j < num; j += i )
            {
                array[j]= 0;
            }
        }
    }
}

您的代码崩溃的原因是您在此处对数组使用 VLA 分配

int array[num];

它是用来分配的num堆栈的 int 元素,它很可能太小而无法容纳一百万个int values.

您应该注意,它不是标准的 C++ 功能,而是许多编译器实现提供的扩展。

为了解决这个问题,有三种选择:

  1. 您将程序使用的堆栈大小配置得足够大以容纳int元素(这取决于操作系统)
  2. 你用一个std::vector<int> array(num);相反,它在堆内存上分配这些元素
  3. 您自己使用在堆上分配必要的内存int* array = new int[num]; and delete [] array;在程序结束时(我不推荐这个解决方案,因为它很容易在正确的内存管理方面犯愚蠢的错误)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

埃拉托斯特尼素数筛法到一百万 C++ 的相关文章

  • WPF 中的屏幕分辨率问题?

    我将在 WPF 中使用以下代码检测分辨率 double height System Windows SystemParameters PrimaryScreenHeight double width System Windows Syste
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • 在 C++ 中将成对向量转换为两个独立向量的最快方法

    假设我有一个vector of pair
  • C# 正则表达式用于查找 中具有特定结尾的链接

    我需要一个正则表达式模式来查找字符串 带有 HTML 代码 中的链接 以获取文件结尾如 gif 或 png 的链接 示例字符串 a href site com folder picture png target blank picture
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • SFINAE 如何使用省略号?

    过去 当使用 SFINAE 选择构造函数重载时 我通常使用以下内容 template
  • 无法解析远程名称 - webclient

    我面临这个错误 The remote name could not be resolved russgates85 001 site1 smarterasp net 当我请求使用 Web 客户端读取 html 内容时 出现错误 下面是我的代
  • 将带有 glut 的点击坐标添加到向量链接列表中

    我想创建一个向量链接列表 并在 GLUT 库的帮助下获取点击的位置并将它们附加到链接列表中 这些是我写的结构 typedef struct vector int x int y Vector typedef struct VectorLis
  • 从成员函数指针类型生成函子

    我正在尝试简化 通过make fn 预处理参数的函子的生成 通过wrap 对于 arity 的成员函数n 生成函子基本上可以工作 但到目前为止只能通过显式指定成员函数的参数类型来实现 现在我想从它处理的成员函数类型生成正确的函子 struc
  • 预处理后解析 C++ 源文件

    我正在尝试分析c 使用我定制的解析器的文件 写在c 在开始解析之前 我想摆脱所有 define 我希望源文件在预处理后可以编译 所以最好的方法是运行C Preprocessor在文件上 cpp myfile cpp temp cpp or
  • 分配器感知容器和propagate_on_container_swap

    The std allocator traits模板定义了一些常量 例如propagate on container copy move assign让其他容器知道它们是否应该在复制或移动操作期间复制第二个容器的分配器 我们还有propag
  • C# 中的常量和只读? [复制]

    这个问题在这里已经有答案了 可能的重复 const 和 readonly 之间有什么区别 https stackoverflow com questions 55984 what is the difference between cons
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • WPF。如何从另一个窗口隐藏/显示主窗口

    我有两个窗口 MainWindow 和 Login 显示登录的按钮位于主窗口 this Hide Login li new Login li Show 登录窗口上有一个检查密码的按钮 如果密码正确 我如何显示主窗口 将参数传递给 MainW
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 使用 HTMLAgilityPack 从节点的子节点中选择所有

    我有以下代码用于获取 html 页面 将网址设置为绝对 然后将链接设置为 rel nofollow 并在新窗口 选项卡中打开 我的问题是关于将属性添加到 a s string url http www mysite com string s
  • C 中带有指针的结构的内存开销[重复]

    这个问题在这里已经有答案了 我意识到当我的结构包含指针时 它们会产生内存开销 这里有一个例子 typedef struct int num1 int num2 myStruct1 typedef struct int p int num2
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • 受限 AppDomain 中的代码访问安全异常

    Goal 我需要在权限非常有限的 AppDomain 中运行一些代码 它不应该访问任何花哨或不安全的内容 except对于我在其他地方定义的一些辅助方法 我做了什么 我正在创建一个具有所需基本权限的沙箱 AppDomain 并创建一个运行代

随机推荐

  • 应用程序的强名称验证失败

    我制作了一个使用 C Program Files x86 Reference Assemblies Microsoft WindowsPowerShell 3 0 System Management Automation dll 的 C 应
  • Angular 5:如何上传图像[重复]

    这个问题在这里已经有答案了 我正在使用 Angular 5 我有一个需求 需要在页面上上传图片并显示该图片 有没有 Angular 5 标签或 html 标签可以做到这一点 我附上了它的屏幕截图 用户单击 上传 按钮 应该会出现一个弹出窗口
  • 就地执行 numpy exp 函数

    如标题所示 我需要执行numpy exp在一个非常大的 ndarray 上 比方说ar 并将结果存储在ar本身 这个操作可以就地进行吗 您可以使用可选的out的论证exp a np array 3 4 5 res np exp a a pr
  • 管理多个 Twisted 客户端连接

    我正在尝试在一种管理多个客户端连接的蜘蛛程序中使用 Twisted 我想维持一组大约 5 个同时工作的客户 每个客户端的功能是连接到从列表中获取的指定 IRC 服务器 进入特定频道 然后将该频道中的用户列表保存到数据库中 我遇到的问题更多的
  • 从 Flutter 应用程序访问 ExpoSecureStore 存储的钥匙串值 [iOS]

    我有一个 React Native 应用程序 仅针对 iOS 发布 它使用曝光安全存储 https docs expo io versions latest sdk securestore 从 iOS 钥匙串中写入和读取值 我正在过渡到 F
  • 创建自定义 XML 数据类型?

    有没有办法为 Android 创建自定义 XML 数据类型 我有课Model其中包含我的实体的所有统计数据 我希望能够充气Model与 xml 中的类类似 嗯 就像视图一样 这可能吗 Example
  • Pandas UDF 不比 Spark UDF 快吗? [复制]

    这个问题在这里已经有答案了 我从 Pyspark 网站获取了以下 UDF 因为我试图了解是否有性能改进 我制作了很大范围的数字 但两者花费的时间几乎相同 我做错了什么 Thanks import pandas as pd from pysp
  • Fortran:将任意“结构”传递给模块子例程

    我正在尝试编写一个通用子例程以实现最小化 由于我想要一个通用的子例程 目标函数可以有不同的参数 不仅在名称上 而且在维度上 所以我需要一种方法来传递该参数结构 我使用 结构 一词 因为我的想法是使用类似于 Matlab 中的结构类型变量的东
  • Scala 2 隐式和 Scala 3 给定/使用之间的区别

    两者有什么区别implicitScala 2 中的关键字和given using在 Scala 3 中 难道只是这样吗implicit已被分成两个关键字 或者语义也不同 如果是 如何 在大多数情况下 它们是相同的 然而 implicit不再
  • 使用 url 中的 javascript 更改框架属性

    我想根据 URL 使用 javascript 更改 iframe 的大小 我的意思是 如果网址是 mywebpage com example html width 800 height 450 iframe 是 看到 iframe 中的宽度
  • ASM字节码工程库中MethodVisitor类的visitLocalVariable()方法是做什么的?

    我在应用程序中使用 ASM 第一次 来创建 Java 类文件 这是我正在编写的编译器的后端 我阅读了 ASM 文档的相关部分 并对堆栈映射框架有疑问 ASM 表示 如果使用适当的标志初始化类编写器 它可以自动计算这些帧 我的问题是 这是否意
  • 如此透明,我无法捕捉到它...使用 Rghost 模拟 Ghostscript 命令,就像在虚拟打印机上一样

    作为一个红宝石新手 我一直在寻找幽灵 你可能会有所帮助 我读了很多书 并被告知对付这些鬼鬼祟祟的家伙的最好方法是使用脚本 ghostscript 我正在尝试执行在虚拟打印机中运行的 Ghostscript 命令 但在 ruby 鞋子 文件的
  • 将大型 DataFrame 输出到 CSV 文件的最快方法是什么?

    对于 python pandas 我发现 df to csv fname 的工作速度约为每分钟 1 百万行 有时我可以将性能提高 7 倍 如下所示 def df2csv df fname myformats sep function is
  • Task.Convert 扩展方法有用还是有隐患?

    我正在为 Google Cloud API 编写客户端库 该库具有相当常见的异步帮助器重载模式 做一些简短的同步工作来设置请求 发出异步请求 以简单的方式转换结果 目前我们正在使用异步方法 但是 就优先级而言 转换await的结果最终会很烦
  • 输入流迭代器和异常

    几天前 我正在研究 istream 迭代器和异常处理 我对此感到好奇 include
  • SQL Server 表中列的最佳命名

    您会选择以下三个选项中的哪一个作为 SQL Server 表中的列名 为什么 年初至今工资 YTDWages YtdWages 跟进 SSN Ssn 社会安全号码 对于第一个 我会使用 WagesYTD 因为年初至今是工资的修正因素 对于第
  • 如果我的部署目标是8.0,我们是否需要为“armv7”和“arm64”编译iOS应用程序?

    我的应用程序支持iOS8 0及以上版本 而且我知道从iOS7开始它的arm64位架构 在这种情况下 我们是否需要编译 armv7 和 arm64 切片的二进制文件 如果我单独编译arm64 我可以减少我的应用程序大小 这是正确的方法吗 请帮
  • Oracle 从表中随机行

    我找到了从 Oracle 表中选择随机行的解决方案 实际上以随机方式对行进行排序 但您只能获取第一行以获得随机结果 SELECT FROM table ORDER BY dbms random value 我只是不明白它是如何工作的 ORD
  • 反应本机 RCTBridgeModule 的初始化

    我想知道向我的 RCTBridgeModule 添加初始化步骤的最佳方法是什么 我当前的解决方案是声明一个必须在 AppDelegate 内部调用的方法 是否有任何其他 更好的解决方案不需要模块的最终消费者向其 AppDelegate 添加
  • 埃拉托斯特尼素数筛法到一百万 C++

    所以我需要有关我的代码的帮助 由于某种原因 当我输入超过 500 000 的数字时 它不断崩溃 这是确切的分配 实现埃拉托色尼筛法并用它来查找所有素数 数量小于或等于一百万 使用结果 证明哥德巴赫猜想对于 4 到 4 之间的所有偶数 100