#include #include #include #include #include #define ll long long using namespace std; const int maxn=10010; int i,j,n,k,cnt; int a[maxn]; ll m; void work2(int a){ if(a&1)a++; a>>=1; for(int i=1;i<=a;i++)printf("4"); for(int i=1;i<=a;i++)printf("7"); printf("\n"); } void work1(int a,int *A){ if(a&1){work2(a);return;} int j=0; for(int i=a;i;i--)if(A[i]==4)j++; if(j<(a>>1)){work2(a+1);return;} int i=1; while(j>(a>>1)){ j--; while(A[i]==7)i++; A[i]=7; } for(i=a;i;i--)printf("%d",A[i]);printf("\n"); } int main(){ // freopen("uva.in","r",stdin); scanf("%d",&n); for(int kk=1;kk<=n;kk++){ scanf("%I64d",&m); if(m==0){ printf("47\n"); continue; } j=0; while(m){ a[++j]=m%10; m/=10; } int jj=j; while(jj&&(a[jj]==7||a[jj]==4))jj--; if(!jj)work1(j,a); else if(a[jj]<4){ for(int jjj=jj;jjj;jjj--)a[jjj]=4; work1(j,a); }else if(a[jj]>7){ bool flag=false; for(int jjj=j;jjj>jj;jjj--)if(a[jjj]==4)flag=true; if(flag){ int jjj=jj+1; while(a[jjj]!=4)jjj++; a[jjj--]=7; while(jjj)a[jjj--]=4; work1(j,a); }else{ work2(j+1); } }else{ a[jj]=7; for(int jjj=jj-1;jjj;jjj--)a[jjj]=4; work1(j,a); } } return 0; }