求助!咋优化代码避免TLE。?感谢dalao

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

heathera @ 2024-09-13 17:24:06

#include<stdio.h>
#include<string.h>
bool panduanhuiwenshu(int n)//判断n是否为回文数
{
    if(n<10)
    {
        return true;
    }
    char s[10];
    sprintf(s,"%d",n);
    int len=strlen(s);
    for(int i=0;i<len/2;i++)
    {
        if(s[i]!=s[len-i-1])
        {
            return false;
        }
    }
    return true;
}

bool panduanzhishu(int n)//判断n是否为质数
{
    for(int i=2;i*i<=n;i++)
    {
        if(n==2)
        {
            return true;
        }
        if(n%i==0)
        {
            return false;
        }
    }
    return true;
}

int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    for(int i=a;i<=b;i++)
    {
        if(panduanhuiwenshu(i)==1)
        {
            int m=panduanzhishu(i);
            if(m==1)
            {
                printf("%d\n",i);
            }
        }
    }
    return 0;
}

感谢感谢感谢感谢感谢好心人指点!!


by CodingOIer @ 2024-09-13 17:27:38

@heathera 优化算法


by eatkeyboard @ 2024-09-13 17:33:16

用欧拉筛或埃氏筛预处理数据范围内的数字


|