求优化

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

Maysoul @ 2023-03-16 15:13:44

最后一个点TIE了

已经处理了很多细节,有快读,质数筛有特判2,sqrt也改了

//2023/3/15
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
int ans=0,num=0,a,b,c[MAXN];
int read()
{
    int s=0,w=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-'){w=-1;}ch=getchar();}
    while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}
    return s*w;
}
int k=0,x=0;
void hw(int h,int t)
{
    for (int j=h;j<=t;j++)
    {
        int whole=j;
        int y,z=0;
        while(whole)
        {
            y=whole%10;
            whole/=10;
            z=z*10+y;
        }
        if(j==z)
        {
            c[k]=j;
            k++;
        }
    }
}
bool flag=1;
void prime(int p)
{
    if (p%2==0)
    {
        return;
    }
    for (int i=3;i*i<=p;i+=2)
    {
        if(p%i==0)
        {
            flag=0;
            break;
        }
    }
    if(flag)
    {
        printf("%d\n",p);
    }
    flag=1;
}
int main()
{
    a=read(),b=read();
    hw(a,b);
    for (int i=0;i<k;i++)
    {
        prime(c[i]);
    }
    return 0;
}

by sidekick257 @ 2023-03-16 16:17:40

谁让你判断回文数的.......


by StarLbright40 @ 2023-03-16 16:18:32

@Maysoul 考虑位数为偶数的回文数,它们一定是 11 的倍数,所以除了 11 之外这样的数一定不是质数,在枚举时可以跳过。


|