TLE最后一个点求助
查看原帖
TLE最后一个点求助
1453266
wangziyang202511036楼主2024/12/25 13:23
#include <bits/stdc++.h>
using namespace std;
int a[10000005];
int huiwen[10000005];
bool isprime(int n)//判断质数
{
	if(n<=1) return false;
	if(n==2) return true;
	if((n%10)%2==0)
	{
		return false;
	}
	for(int i=3;i<=n/i;i+=2)
	{
		if(n%i==0)
		{
			return false;
		}
	}
	return true;
}
bool hw(int n)//判断回文
{
	int j=0;
	while(n)
	{
		a[++j]=n%10;
		n/=10;
	}
	for(int i=1;i<=j;i++)
	{
		if(a[i]!=a[j-i+1])
		{
			return false;
		}
	}
	return true;
}
inline int read()//快读
{
	bool f=1;
	int g=0;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
		{
			f=false;
			c=getchar();
		}
	}
	while(c>='0'&&c<='9')
	{
		g=g*10+c-48;
		c=getchar();
	}
	return f?g:-g;
}
void write(int n)//快写
{
	if(n<0)
	{
		putchar('-');
		n=-n;
	}
	if(n>9)
	{
		write(n/10);
	}
	putchar((n%10)|0x30);
	return;
}
int main()
{
	int a,b;
	a=read();
	b=read();
	int j=0;
	for(int i=a;i<=b;i++)
	{
		if(hw(i))
		{
			huiwen[j++]=i;
		}
	}
	for(int i=0;i<j;i++)
	{
		if(huiwen[i]==0)
		{
			break;
		}
		if(isprime(huiwen[i]))
		{
			write(huiwen[i]);
			cout<<endl;
		}
	}
	return 0;
}
2024/12/25 13:23
加载中...