求助88分第九个TLE

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

soul2024 @ 2023-09-16 22:19:46

#include<bits/stdc++.h>
using namespace std;
bool jk1(int n){
    if(n==1)return false;
    for(int i=2;i*i<=n;i++){
        if(n%i==0)return false;
    }
    return true;
}
bool hw(int n) {
    int s=0;
    int k=n;
    while(n!=0) {
        s=s*10+n%10;
        n/=10;
    }
    if(s==k)
        return true;
    else
        return false;
}
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=n;i<=m;i++){
        if(hw(i)&&jk1(i))cout<<i<<endl;
    }
    return 0;
}

by Miyamizu_Mitsuha @ 2023-09-16 22:44:52

用这个判断质数能不能稍微快一点

bool isp(int n) {
    if (n <= 1) return false;
    if (n <= 3) return true;
    if (n % 2 == 0 || n % 3 == 0) return false;
    for (int i = 5; i * i <= n; i += 6) {
        if (n % i == 0 || n % (i + 2) == 0) return false;
    }
    return true;
}

by Miyamizu_Mitsuha @ 2023-09-16 22:50:24

这个要是不行那就只能主函数循环改写成

for(int i=n;i<=m;i++){
    if(i==9989899){cout<<i;break;}
    if(hw(i)&&jk1(i))cout<<i<<endl;

}

by soul2024 @ 2023-09-16 22:59:38

@p_Hydroxy 我最后一个测试点打表打出来了


by Miyamizu_Mitsuha @ 2023-09-16 23:00:11

@WJR2023 我试了一下主函数循环改成这个就嫩过


|