求助 最后一个超时 已经用了质数筛了
查看原帖
求助 最后一个超时 已经用了质数筛了
1114927
Lolaandd楼主2024/8/21 16:51
#include<iostream>

using namespace std;

const long int maxn=100000000;

long int a,b;
bool visit[maxn];
long int prime[maxn];
int sieve(int min,int max)
{
    long int i,j,k=0;
    visit[0]=visit[1]=1;
    for(i=2;i<=max;i++)
    {
        if(visit[i]==0)
        {
            prime[k++]=i;
            for(j=i;i*j<=max;j++) visit[i*j]=1;
        }  
    }
    return k;
}

int check_pld(int a)
{
    int list[100]={0};
    int len=0;
    while(a>0)
    {
        list[len++]=a%10;
        a/=10;
    }
    int flag=1;
    for(int i=0;i<len/2;i++) if(list[i]!=list[len-1-i]) {flag=0; break; }
    return flag;
}
int main()
{
    cin >>a>>b;
    int num=sieve(a,b);
    for(int i=0;i<num;i++) if(prime[i]>=a) if(check_pld(prime[i])==1) cout<<prime[i]<<endl;
    return 0;
}
2024/8/21 16:51
加载中...