#include<bits/stdc++.h> #define MAXN 100005 #define int long long usingnamespace std; inlineintread(){ int x=0,f=1; char ch=getchar(); while (ch<'0'||ch>'9'){ if (ch=='-') f=-1; ch=getchar(); } while (ch>='0'&&ch<='9'){ x=(x<<3)+(x<<1)+(ch^'0'); ch=getchar(); } return x*f; } int Data[MAXN]; int vis[MAXN]; inlinevoidPut(char ch,int t){ for (registerint i=1;i<=t;++i){ putchar(ch); } } #undef int intmain(){ #define int long long int t=read(); for (registerint i=1;i<MAXN;++i){ Data[i]=i*(i+1)/2ll; } while (t--){ int n=read(); memset(vis,0,sizeof(vis)); while (n>0){ int pos=upper_bound(Data+1,Data+MAXN,n)-Data-1; vis[pos]++; n-=Data[pos]; } int lst=-1; for (registerint i=MAXN-1;i>=0;--i){ if (vis[i]){ if (lst!=-1) Put('3',lst-i); Put('1',vis[i]); lst=i; } } Put('3',lst+1); Put('7',1); printf("\n"); } }