1 条题解

  • 0
    @ 2025-3-18 18:54:59

    本人用的是欧拉筛法筛质数来避免时间超限
    回文判断不需要像提示给的那样,直接转成字符串,看字符串反转后是否和原来相同
    然后就做完了

    #include<bits/stdc++.h>
    #define endl '\n'
    using namespace std;
    const int N=1e8;
    vector <bool> isprime(N,true);
    int prime[N/10],cnt;
    bool huiwen(int x){
    	string k=to_string(x);
    	string s=k;
    	reverse(s.begin(),s.end());
    	if(s==k)return 1;
    	else return 0;
    }
    void euler(){
        isprime[1]=false;
        for(int i=2;i<=N;i++){
            if(isprime[i])prime[++cnt]=i;
            for(int j=1;i*prime[j]<=N;j++){
                isprime[i*prime[j]]=false;
                if(i%prime[j]==0)break;
            }
        }
    }
    int main() {
    	euler();
    	int n,m; cin>>n>>m;
    	for(int i=n;i<=m;i++){
    		if(isprime[i]&&huiwen(i))cout<<i<<endl;
    	}
    	return 0;
    }
    
    • 1

    【深基7.习5】[USACO1.5] 回文质数 Prime Palindromes

    信息

    ID
    43
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    1
    上传者