算法有问题,求助
查看原帖
算法有问题,求助
728458
lht20090314楼主2022/10/28 10:51

全WA,本地运行什么都没有输出,应该是判断回文那一块有问题,麻烦各位大佬帮忙看看怎么改。

#include <iostream>
#include <cstring>
using namespace std;
bool isPrime[100000001];
int prime[10000001];
int cnt = 0;

// 欧拉筛
void getPrime(int n)
{
	memset(isPrime, 1, sizeof(isPrime));
	isPrime[1] = 0;
	for (int i = 2; i <= n; i++)
	{
		if (isPrime[i]) prime[++cnt] = i;
		for (int j = 1; j <= cnt && i * prime[j] <= n; j++)
		{
			isPrime[i * prime[j]] = 0;
			if (i % prime[j] == 0) break;
		}
	}
}

// 判断回文
void isPalindromeNumber()
{
	for (int i = 1; i <= cnt; i++)
	{
		int t1 = prime[i], t2 = 0;
		while (t1 > 0)
		{
			t2 += t1 % 10;  // 获取个位数
			t2 *= 10;  // 进一位
			t1 /= 10;
		}
		t2 /= 10;  // 把多进的那一位还原
		if (t1 == t2) cout << t1 << endl;
	}
}

int main()
{
	int a = 0, b = 0;
	cin >> a >> b;
	getPrime(b);
	isPalindromeNumber();
	
	return 0;
}
2022/10/28 10:51
加载中...