和大佬们发的题解差不多为啥mle啊
查看原帖
和大佬们发的题解差不多为啥mle啊
495832
dengminchuan楼主2021/6/10 11:47

自己测试是对的,提交就mle了

#include<iostream>
#include<string>
#include<algorithm>
#define max_size 100000000
using namespace std;
int num[max_size] = { 0 };
int prime[max_size] = { 0 };//存放素数的数组
//void primejudge( int max);
void quickprimejudge(int max);
bool pd_h(int x)//小数据回文数判断
{
	int y = x, num = 0;//int y=x,防止x被改变
	while (y != 0)
	{
		num = num * 10 + y % 10;//上一次数字的记录进位再加上下一位数
		y /= 10;
	}
	if (num == x) return 1;
	else return 0;
}
int main() {
	int min = 0;
	int max = 0;
	cin >> min >> max;
	quickprimejudge(max);
	for (int j = min;j <= max;j++) {
		//stl法判断
		/*if (num[j] == 0) {
			string str = to_string(j);
			string str1 = str;
			reverse(str.begin(), str.end());
			if (str == str1) {
				cout << j << endl;
			}
		}*/
		//数据较小时普通方法判断
		if (pd_h(j)&&num[j]==0) {
			cout << j << endl;
		}
	}
	system("pause");
	return 0;
}
//void primejudge( int max) {//0代表是质数
//	for (int i = 2;i <= max;i) {
//		if (num[i] == 0) {
//			for (int j = 2;j * i <= max;j++) {
//				num[j * i] = 1;
//			}
//		}
//	}
//}
void quickprimejudge(int max) {
	int number = 0;
	for (int i = 2;i <= max;i++) {
		if (!num[i]) {
			prime[number++] = i;
		}
		for (int j = 0;j < number && prime[j] * i <= max;j++) {
			num[prime[j] * i] = 1;//合数
			if (i % prime[j] == 0) {
				break;
			}
		}
	}
}

2021/6/10 11:47
加载中...