喵呜难过
查看原帖
喵呜难过
1252442
lucy2012楼主2024/8/14 14:54

33分,感觉是判断质数那里错了喵。。

#include<bits/stdc++.h>
using namespace std;
long long a,b,cnt=4,prime[10000010];
bool pri(int x){
	int tmp=1;
	for(int i=2;i*i<=x;i++){
		if(x%i==0){
			tmp=0;
			break;
		}
	}
	return tmp;
}
int main(){
	prime[1]=2;
	prime[2]=3;
	prime[3]=5;
	prime[4]=7;
	for(int i=1;i<=9;i+=2){
		if(pri(i+10*i)){
			prime[++cnt]=i+10*i;
		}
	}
	for(int i=1;i<=9;i+=2){
		for(int j=0;j<=9;j++){
			if(pri(i+10*j+100*i))
			    prime[++cnt]=i+10*j+100*i;
		}
	}
	for(int i=1;i<=9;i+=2){
		for(int j=0;j<=9;j++){
			if(pri(i+10*j+100*j+1000*i)) 
			    prime[++cnt]=i+10*j+100*j+1000*i;
		}
	}
	for(int i=1;i<=9;i+=2){
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				if(pri(i+10*j+100*k+1000*j+10000*i))
				    prime[++cnt]=i+10*j+100*k+1000*j+10000*i;
			}
		}
	}
	for(int i=1;i<=9;i+=2){
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				if(i+10*j+100*k+1000*k+10000*j+100000*i)
				    prime[++cnt]=i+10*j+100*k+1000*k+10000*j+100000*i;
			}
		}
	}
	for(int i=1;i<=9;i+=2){
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				for(int q=0;q<=9;q++){
					if(i+10*j+100*k+1000*q+10000*k+100000*j+1000000*i)
					    prime[++cnt]=i+10*j+100*k+1000*q+10000*k+100000*j+1000000*i;
				}
			}
		}
	}
	for(int i=1;i<=9;i+=2){
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				for(int q=0;q<=0;q++){
					if(i+j*10+k*100+q*1000+q*10000+k*100000+j*1000000+i*10000000)
					    prime[++cnt]=i+j*10+k*100+q*1000+q*10000+k*100000+j*1000000+i*10000000;
				}
			}
		}
	}
	for(int i=1;i<=9;i+=2){
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				for(int q=0;q<=9;q++){
					for(int w=0;w<=9;w++){
						if(i+j*10+k*100+q*1000+w*10000+q*100000+k*1000000+j*10000000+i*100000000)
						    prime[++cnt]=i+j*10+k*100+q*1000+w*10000+q*100000+k*1000000+j*10000000+i*100000000;
					}
				}
			}
		}
	}
	cin>>a>>b;
	for(int i=1;i<=cnt;i++){
		if(prime[i]>=a&&prime[i]<=b){
			cout<<prime[i]<<endl;
		}
		if(prime[i]>b)
		    break;
	}
	return 0;
}
2024/8/14 14:54
加载中...