比赛 20120619 评测结果 AAAAAAAAAA
题目名称 隐藏的信息 最终得分 100
用户昵称 农场主 运行时间 0.014 s
代码语言 C++ 内存使用 0.26 MiB
提交时间 2016-04-22 12:03:45
显示代码纯文本
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
ll d[8]={2,3,5,7,11,13,17,19},s[21]={0},t=1,tot=0,mod=1,u=0;
ll p,q,n;
bool vis[10]={0};
void dfs(int x,int t){
	if (x==tot) {
		if (t%mod==0) {printf("%d\n",t);u++;}
		return;
	} 
	for (int i=1;i<=9;i++) if (vis[i]==1) {
		vis[i]=0;
		dfs(x+1,t*10+i);
		vis[i]=1;
	}
}
int main(){
	freopen("lcsa.in","r",stdin);
	freopen("lcsa.out","w",stdout);
	scanf("%d%d%d",&n,&p,&q);
	for	(int i=p;i<=q;i++){
		s[i]=i;
	}
	for (int i=0;i<8;i++){
		t=0;
		for (int j=p;j<=q;j++){
			tot=1;
			while (s[j]%d[i]==0){
				s[j]/=d[i];
				tot*=d[i];
			}
			t=max(tot,t);
		}
		mod*=t;
	}
	tot=0;
	while (n>0){
		vis[n%10]=1;
		n/=10;
		tot++;
	}
	dfs(0,0);
	if (u==0) printf("No answer");
	return 0;
}