欧拉筛还是不通过,求助!
查看原帖
欧拉筛还是不通过,求助!
249348
znouc1314楼主2020/12/9 11:00

先是用了埃氏筛,最后一个TLE,现在改成欧拉筛还是过不了,求助大佬帮忙给看一下,谢谢!

#include<bits/stdc++.h>
#define maxn 100000003
using namespace std;
bool isHw(int num){
	int nn=num,s=0;
	while(nn){
		s=10*s+nn%10;
		nn/=10;
	}
	if(s==num) return true;
	else return false;
}

bool vis[maxn];//true为合数 
int prime[maxn];
int main(){
	int a,b,cnt=0;
	cin>>a>>b;
	for(int i=2;i<=b;++i){  //欧拉筛 
		if(!vis[i]) prime[++cnt]=i; 
		for(int j=1;j<=cnt&&i*prime[j]<=b;++j){
			vis[i*prime[j]]=true;
			if(i%prime[j]==0) break;
		}
	}
	for(int i=a;i<=b;++i){
		if(i%2&&isHw(i)&&!vis[i]){
			cout<<i<<endl;
		}
	}
	return 0;
} 
2020/12/9 11:00
加载中...