最好一个点RE,求助大佬

P1217 [USACO1.5] 回文质数 Prime Palindromes

hcy1117 @ 2023-09-11 11:15:23

#include<bits/stdc++.h>
using namespace std;
long long l,r;
bool f[10000005];
int prim[10000005];
int cnt;
void er()
{
    f[0]=1,f[1]=1;
    for(int i=2;i<=r;i++)
    {
        if(!f[i])prim[++cnt]=i;
        for(int j=1;j<=cnt&&i*prim[j]<=r;j++)
        {
            f[i*prim[j]]=1;
            if(i%prim[j]==0)break;
        }
    }
}
bool pd(int x)
{
    if(f[x])return 0;
    int n=x,ct=0;
    int s[10];
    while(n>0)
    {
        s[++ct]=n%10;
        n/=10;
    }
    int ll=1,rr=ct;
    while(ll<=rr)
    {
        if(s[ll]!=s[rr])
        {
            return 0;
        }
        ll++;rr--;
    }
    return 1;
}
int main()
{
    scanf("%lld%lld",&l,&r);
    er();
    for(int i=l;i<=r;i++)
    {
        if(pd(i))cout<<i<<endl;
    }
}

by hcy1117 @ 2023-09-11 11:18:43

现在是TLE


by zzb1217 @ 2023-09-11 11:21:27

@hcy1117 LLL


by Terrible @ 2023-09-11 11:23:25

更改枚举思路:先枚举回文数,再判断它是否是质数,否则需要打表。

两种方式都可以,数组必须开的够大(电脑内存也得大)。


by hcy1117 @ 2023-09-11 11:25:42

@Terrible 谢谢大佬


by hcy1117 @ 2023-09-11 11:26:11

@zhouzibo1217 你干嘛——


|