求调
查看原帖
求调
1653348
zbl2012楼主2025/8/1 22:19

88pts,线性筛被luoguT飞

#include <bits/stdc++.h>
using namespace std;
bool check(int x){
	string s=to_string(x);
	string s2=s;
	reverse(s.begin(),s.end());
	return s2==s;
}
const int N=1e8+10;
int primes[N],cnt;
bool st[N];
void get(int n){
	for(int i=2;i<=n;i++){
		if(!st[i])primes[cnt++]=i;
		for(int j=0;primes[j]<=n/i;j++){
			st[primes[j]*i]=true;
			if(i%primes[j]==0)break;
		}
	}
}
bool is_prime(int n){
	return !st[n];
}
int main(){
	int a,b;
	scanf("%d%d",&a,&b);
    get(b+5);
	for(int i=a;i<=b;i++){
		if(i==1)continue;
		if(i==2){putchar(2),putchar('\n');continue;}
		if(i%2==0)continue;
		if(check(i)&&is_prime(i))printf("%d\n",i);
	}
	return 0;
}
2025/8/1 22:19
加载中...