大值的正确代码中的运行时错误

Runtime error in correct code for large value

所以,我正在开发一个 C++ 程序,该程序将列出指定数量的素数 N

我想编写确定性的代码,比试验除法更快且易于实现。我最近了解了埃拉托色尼筛法并尝试使用它。

正如预期的那样,它使用了大量内存,但 运行-时间非常快。现在,我的问题是:

显然,这不应该是内存问题,因为在 Ideone FAQ 中提到内存限制是 256 MB,这是相当大的!我不明白为什么在算法正确且没有内存问题的情况下会出现 运行时间错误!

是不是因为我代码中的char数组arrN=115800时元素太多了?

与问题无关的次要代码吹毛求疵。您可能想要更改:

if(arr[i]==NULL)

至:

if(arr[i]==0)

您想将字符数组与 0(而不是 NULL)进行比较。这不是您的问题的原因。

Ideone 的问题在于它们将代码、输入和输出的总量限制为 64kb。碰巧 N=115800 你达到了那个限制。这可以在 FAQ:

中找到

What is the size limit for the source code, input and output? 64 kB.