欧拉筛80分,请问如何优化?
查看原帖
欧拉筛80分,请问如何优化?
506225
_Ventus_楼主2022/5/21 13:32
#include<bits/stdc++.h>
int n,p[100000000];
bool f,v[100000000];
void prime(int m){
    for(int i=2;i<=m;i++){
        if(!v[i]) p[++p[0]]=i;     
        for(int j=1;j<=p[0]&&i*p[j]<=m;j++){
            v[i*p[j]]=1;
            if(i%p[j]==0) break;
        }
    }
}
int main(){
    scanf("%d",&n);
    v[1]=1;
	prime(pow(10,n)-1);
	for(int i=pow(10,n-1)+1;i<=pow(10,n);i+=2){
		for(int j=i;j>=1;j/=10)
			if(v[j]){
			    f=false;
			    break;
		    }
		if(f) printf("%d\n",i);
		f=true;
	}
	return 0;
}
2022/5/21 13:32
加载中...