#include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm> #include<cmath> #include<string> #include<cstring> #include<set> #include<map> #include<list> #include<queue> #include<vector> #define tree int o,int l,int r #define lson o<<1,l,mid #define rson o<<1|1,mid+1,r #define lo o<<1 #define ro o<<1|1 #define ULL unsigned long long #define LL long long #define UI unsigned int #define inf 0x7fffffff #define eps 1e-7 #define M 29901 #define N 1000009 using namespace std; int T,n,m,k,t,maxv; struct Node { int c,last; } node[M]; bool res[N]; int main() { #ifndef ONLINE_JUDGE freopen("ex.in","r",stdin); #endif int ncase=0; scanf("%d",&T); while(T--) { scanf("%d",&n); memset(node,-1,sizeof(node)); int ok=0; node[1].c=1; node[1].last=-1; queue<int>q; q.push(1); while(!q.empty()) { int yu=q.front(); q.pop(); for(int i=0; i<2; i++) { int tp=(yu*10+i)%n; if(node[tp].c==-1) { node[tp].c=i; node[tp].last=yu; if(tp==0)//只找第一个,肯定是最小的! { ok=1; break; } q.push(tp); } } if(ok)break; } int sub=0,top=0; while(sub!=-1) { res[top++]=node[sub].c; sub=node[sub].last; } for(int i=top-1; i>=0; i--) printf("%d",res[i]); puts(""); } return 0; }