View Code of Problem 92

 #include<bits/stdc++.h>      
using namespace std;
void show(int,int);
bool jud(int);
void go();
#define max 10000
int shuju[max],num = 0;
int fin[max] = { },op = 0;
int main(){
	int a ,b;
	cin>>a>>b; 
	show(a,b);
	go();
	int k = 1;
	for(int i = 0;i < op ;i++){
		if(fin[i+1] == 0 ){
			printf("%6d",fin[i]);
			break;
		}
		else if(k==5){
			printf("%6d\n",fin[i]);
			k = 0;
		}else printf("%6d",fin[i]);
		k++;
	}

	
	return 0;
}




void show(int a,int b){
	for(int i = a;i <= b;i++ ){
		if(jud(i)) shuju[num++] = i;	
	}	
}
bool jud(int n){
	if(n==1) return false;
	int op = (int)(sqrt(n));
	for(int i = 2;i<=op;i++){
		if(n%i==0) return false;
	}
	return true;
}
void go(){
	int temp ,gao,low,w,q;
	for(int i = 0;i<num;i++){
		temp = shuju[i];
		if(temp < 100){
			gao = temp/10;
			low = temp%10;
			if(gao==low) fin[op++] = temp;
		}else if( temp >= 100 && temp<1000 ){
			gao = temp/100;
			low = temp%10;
			if(gao==low) fin[op++] = temp;
		}else if(temp>=10 && temp<10000){
			gao = temp/1000;
			low = temp%10;
			w = (temp/10)%10;
			q = (temp/100)%10;
			if(gao==low && w==q ) fin[op++] = temp;
		}
	}
}

Double click to view unformatted code.


Back to problem 92