- C++
- 2022-08-11 13:03:41 @
捕风捉影题解
#include<iostream>
#include<cstdio>
using namespace std;
#define pr 11000000
int u[pr]={0};
void prime()
{
int i,j;
u[0]=1,u[1]=1;
for(i=2;i<pr;i++)
{
if(!u[i])
{
for(j=2;i*j<pr;j++){u[i*j]=1;}
}
}
}
int backtest(int x)
{
int n=0,m=x;
while(m)
{
n=n*10+m%10;
m/=10;
}
return n==x? 1:0;
}
void backstr()
{
u[5]=2;
u[7]=2;
u[11]=2;
int i;
for(i=100;i<=10000000;i++)
{
if(i==1000||i==100000)
{
i*=10;
continue;
}
if(!u[i]&&backtest(i))
{
u[i]=2;
if(i*11<10000000&&!u[i*11]&&backtest(i*11))
{
u[i*11]=2;
}
}
}
}
int main()
{
cin.sync_with_stdio(false);
prime();
backstr();
int x,y;
scanf("%d%d",&x,&y);
int i;
for(i=x;i<=y;i++)
{
if(i>=pr-1){break;}
if(u[i]==2)
{
printf("%d\n",i);
}
}
return 0;
}
0 条评论
目前还没有评论...