这道题看上去蛮凶残的真的。。。。又是大数又怕T不过我用最简单的方法DFS暴力搜了一边居然过了。。。。他给的数据居然没有超过unsigned long long。。。
所以从数据的角度来说这就是一道水题。。。。。
#include<stdio.h>
int n;
int yes;
unsigned long long int ans;
void dfs(unsigned long long int a,int w){
if(w>=64||yes==1) return ;
if(a%n==0){
yes=1;
ans=a;
return;
}
else{
dfs(a*10,w+1);
dfs(a*10+1,w+1);
}
return;
}
int main(){
while(scanf("%d",&n)!=EOF&&n){
yes=0;
dfs(1,0);
printf("%I64u\n",ans);
}
return 0;
}