开O2就30分,不开20分!
查看原帖
开O2就30分,不开20分!
309803
tlzhy楼主2021/7/23 22:14
#include<bits/stdc++.h>
using namespace std;

bool prime(int n){
	for(int i=2;i<=sqrt(n);i++)
		if(n%i==0)return false;
	return true;
}

int a,b,n,palindrome1,palindrome2,palindrome3,palindrome4,palindrome5,palindrome6,palindrome7,palindrome8;
int main(){
	
	cin>>a>>b;
	for(int i=a;i<=b;i++){
		n=i;//一位 
		if(n<10&&prime(n))cout<<n<<endl;
		else if(n>=10){
			for(int d1=1;d1<=9;d1++){//二位 
				int d2=d1;
				palindrome1=10*d1+d2;
				if(n==palindrome1&&prime(n))cout<<n<<endl;
			}
		for(int d1=1;d1<=9;d1++){//三位 
			for(int d2=0;d2<=9;d2++){
				palindrome2=100*d1+10*d2+d1;
				if(n==palindrome2&&prime(n))cout<<n<<endl;
			}
		}
		for(int d1=1;d1<=9;d1++){//四位 
			for(int d2=0;d2<=9;d2++){
				palindrome3=1000*d1+100*d2+10*d2+d1;
				if(n==palindrome3&&prime(n))cout<<n<<endl;
			}
		}
		for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//五位 
    		 for(int d2=0;d2<=9;d2++){
         		for(int d3=0;d3<=9;d3++){
           			palindrome4=10000*d1+1000*d2+100*d3+10*d2+d1;//处理回文数
           			if(n==palindrome4&&prime(n))cout<<n<<endl;
         		}
     		}
 		}
 		for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//六位 
    		 for(int d2=0;d2<=9;d2++){
         		for(int d3=0;d3<=9;d3++){
           			palindrome5=100000*d1+10000*d2+1000*d3+100*d3+10*d2+d1;//处理回文数
           			if(n==palindrome5&&prime(n))cout<<n<<endl;
         		}
     		}
 		}
 		for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//七位 
    		 for(int d2=0;d2<=9;d2++){
         		for(int d3=0;d3<=9;d3++){
         			for(int d4=0;d4<=9;d4++){
         				palindrome6=1000000*d1+100000*d2+10000*d3+1000*d4+100*d3+10*d2+d1;//处理回文数
						if(n==palindrome6&&prime(n))cout<<n<<endl;
					}
         		}
     		}
 		}
 		for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//八位 
    		 for(int d2=0;d2<=9;d2++){
         		for(int d3=0;d3<=9;d3++){
         			for(int d4=0;d4<=9;d4++){
         				palindrome7=10000000*d1+1000000*d2+100000*d3+10000*d4+1000*d4+100*d3+10*d2+d1;//处理回文数
						if(n==palindrome7&&prime(n))cout<<n<<endl;
					}
         		}
     		}
 		}
 		for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//九位 
    		 for(int d2=0;d2<=9;d2++){
         		for(int d3=0;d3<=9;d3++){
         			for(int d4=0;d4<=9;d4++){
         				for(int d5=0;d5<=9;d5++){
         					palindrome8=100000000*d1+10000000*d2+1000000*d3+100000*d4+10000*d5+1000*d4+100*d3+10*d2+d1;//处理回文数
							if(n==palindrome8&&prime(n))cout<<n<<endl;
						}
					}
         		}
     		}
 		}
	}
	}
	
	return 0;	
}



2021/7/23 22:14
加载中...