求助!简单的欧拉筛加回文数判断,总是编译错误
查看原帖
求助!简单的欧拉筛加回文数判断,总是编译错误
267832
yhhjhl楼主2020/10/7 16:06
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
const int N = 100000001;
bool isNotPri[N] = { 1,1 };
int pri[N];
int tot = 0;
bool check(string& s)
{
	for (size_t i = 0; i < s.size(); i++)
		if (s[i] != s[s.size() - 1 - i])
			return 0;
	return 1;
}
int main()
{
	int a, b;
	cin >> a >> b;
	for (int i = 2; i < N; i++)
	{
		if (!isNotPri[i])
		{
			pri[tot++] = i;
			if (i >= a && i <= b)
			{
				string s;
				stringstream ss;
				ss << i;
				s = ss.str();
				if (check(s))
					cout << i << endl;
			}
		}
		for (int j = 0; j < tot && i * pri[j] < N; j++)
		{
			isNotPri[i * pri[j]] = 1;
			if (!i % pri[j])
				break;
		}
	}
}

在vs和Dev上都没问题,样例过了,提交就出现这个 g++: 编译器内部错误:文件大小超出限制 signal terminated program as 请提交一份完整的错误报告, 如有可能请附上经预处理后的源文件。 参阅 file:///usr/share/doc/gcc-8/README.Bugs 以获取指示。

2020/10/7 16:06
加载中...