最后一个点过不去,88分求救!!!

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

真香警告AQA @ 2024-10-09 14:32:22

1.67s,最后一个点TLE,还有什么点可以优化啊各位大犇救救TAT

#include<bits/stdc++.h>

int main(){
    std::ios::sync_with_stdio(0);
    std::cin.tie(0), std::cout.tie(0);

    long long int a,b;
    std::string s;
    std::cin>>a>>b;

    for(int i=a;i<=b;i++){//遍历开始
        bool judge=true;
        s=std::to_string(i);//把i转成字符串判断回文
        if(i%2==0||s.length()%2==0&&i%11!=0) continue;//2的倍数舍去,偶数位数不能与11整除的舍去

        for(int j=0;j<=s.length()/2;j++){
            if(s[j]!=s[s.length()-1-j]) judge=false;
        }//判断回文

        if(judge){
            for(int j=3;j<=sqrt(i);j+=2){//遍历至i^(1/2)判断是否为素数
                if(i%j==0){
                     // cout<<j;
                    judge=false;
                    break;
                }
            }
        }
        if(judge) std::cout<<s<<"\n";
    }
}

|