求助
查看原帖
求助
886055
MoonCake2011楼主2022/12/31 12:17

三 WA 无超时

#include<bits/stdc++.h>
using namespace std;
bool prime(int x){
	if(x==1) return 0;
	for(int i=2;i*i<=x;i++){
		if(x%i==0) return 0;
	} 
	return 1;
}
int m,n;
bool f(int x){
	return (x>=m)&&(x<=n);
}
int main() {
	scanf("%d %d",&m,&n); 
	for(int i=5;i<=9;i+=2){//一位数 
		if(f(i)==1&&prime(i)==1) printf("%d\n",i);
	}
	if(f(11)==1) printf("11\n");//两位数
	for(int i=1;i<=9;i+=2){//三位数 
		for(int j=0;j<=9;j++){
			if(f(101*i+10*j)==1&&prime(101*i+10*j)==1) printf("%d\n",101*i+10*j);
		}
	}
	for(int i=1;i<=9;i+=2){//四位数 
		for(int j=1;j<=9;j++){
			if(f(1001*i+110*j)==1&&prime(1001*i+10*j)==1) printf("%d\n",1001*i+10*j);
		}
	}
	for(int i=1;i<=9;i+=2){//五位数 
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				if(f(10001*i+1010*j+100*k)==1&&prime(10001*i+1010*j+100*k)==1)
					printf("%d\n",10001*i+1010*j+100*k);
			}
		}
	}
	for(int i=1;i<=9;i+=2){//六位数 
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				if(f(100001*i+1001*j+11*k)==1&&prime(100001*i+1001*j+11*k)==1)
					printf("%d\n",100001*i+1001*j+11*k);
			}
		}
	}
	for(int i=1;i<=9;i+=2){//七位数 
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				for(int l=0;l<=9;l++){
					if(f(1000001*i+100010*j+10100*k+1000*l)==1&&prime(1000001*i+100010*j+10100*k+1000*l)==1)
						printf("%d\n",1000001*i+100010*j+10100*k+1000*l);
				}
			}
		}
	}
	for(int i=1;i<=9;i+=2){//八位数 
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				for(int l=0;l<=9;l++){
					if(f(10000001*i+1000010*j+100100*k+11000*l)==1&&prime(10000001*i+1000010*j+100100*k+11000*l)==1)
						printf("%d\n",10000001*i+1000010*j+100100*k+11000*l);
				}
			} 
		}
	}
	return 0;
} 
2022/12/31 12:17
加载中...