最后一点超时,求大神帮助。- -||

#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int v[11000000];
int lulalalulalalulalulahei(int x)
{
int i=0;
if(v[x]==-1)
{
int t=int (sqrt(double(x+1)));
for(int i=2;i<=t;i++)
{
if(x%i==0)
{
v[x]=0;
return false;
}
}
v[x]=1;
return true;
}
else if(v[x]==0)return false;
else return true;
}
int lulalalulalalulalulalei(int x)
{
int ans=0,i=0;
int s[20];
while(x)
{
s[ans++]=x%10;
x/=10;
}
for(int i=0;i<=ans/2;i++)
if(s[i]!=s[ans-i-1])return 0;
return 1;
}
int main()
{
int n,m;
int i=m=n=0;
scanf("%d%d",&n,&m);
memset(v,-1,sizeof(v));
if(m>110000000)m=110000000;
for(i=n;i<=m;i++)
if(lulalalulalalulalulalei(i)&&lulalalulalalulalulahei(i))
printf("%d\n",i);
return 0;
}

0 条评论

目前还没有评论...

信息

ID
1042
难度
7
分类
搜索 | 搜索与剪枝 点击显示
标签
(无)
递交数
6583
已通过
1516
通过率
23%
被复制
13
上传者