Dev C ++版本5.11崩溃了筛子

时间:2016-05-20 05:20:57

标签: c++ crash primes

我一直在尝试用C ++实现Eratosthenes筛选。我正在使用Dev C ++ 5.11编译器,每次运行我的代码时,编译器crashes。对于较小的数组值(n = 10000),程序成功运行,但在文本文件中打印garbage values(请查找附加的图像)。我是编程方面的业余爱好者,已经在这个问题上工作了一天多了。很高兴得到任何帮助。 谢谢你的时间! :)

#include <iostream>
using namespace std;
#include <fstream>

int main(){
	ofstream myfile("Prime.txt");
	int n = 1000000;
	int prime[n] = {0};
	for (int i = 2; i <= n; i++){
			for (int j = i*i; j <= n; j+=i){
				prime[j - 1] = 1;
			}
	}
	for (int i = 2; i <= n; i++){
		//cout<<prime[i-1]<<endl;
		if (prime[i - 1] == 0)
			myfile<<i<<" ";
	}
	myfile.close();
	return 0;
}

1 个答案:

答案 0 :(得分:-1)

也许数组很大。 32位编译器具有最大大小的限制因子(4 GB限制)。

1.000.000 * 4字节(32位)= 4.000.0000字节

4.000.000 Byte / 1024/1024 = ~3,8 GB