44求助
查看原帖
44求助
689146
mushezi楼主2022/8/21 13:12
#include <bits/stdc++.h>
using namespace std;

const int N = 1e8 + 5;
bitset<N> vis;
int prime[100000];
int l, r;
int n;

void init(){
    for(int i = 2; i <= r; i++){
        if(!vis[i]) prime[++n] = i;
        for(int j = 1; j <= n && prime[j]*i <= r; j++){
            vis[prime[j] * i] = 1;
            if(!(i % prime[j])) break;
        }
    }
}

bool ispal(int x){
    int y = x, t = 0;
    while(y){
        t = t * 10 + (y%10);
        y /= 10;
    }
    return x == t;
}

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

    //freopen("prime.in", "r", stdin);
    //freopen("prime.out", "w", stdout);

    cin >> l >> r;

    init();

    for(int i = l; i <= r; i++){
        if(!vis[i] && ispal(i)) cout << i << endl;
    }

    return 0;
}
2022/8/21 13:12
加载中...