#include #include #include #include #include #include #include #include #include #include #define LL long long #define inf 0x3f3f3f3f #define eps 1e-6 using namespace std; const int maxn = 1000000+10; LL a[maxn],b[maxn]; void init() { a[1]=1; b[1]=1; for (int i=2;i<=100;i++) { a[i]=a[i-1]*2+1; b[i]=b[i-1]+a[i-1]+b[i-1]+1; } //for (int i=1;i<=10;i++) printf("%I64d ",a[i]); printf("\n"); //for (int i=1;i<=10;i++) printf("%I64d ",b[i]); printf("\n"); } LL ans; void get(LL m,LL num) { if (m==0) return; int x=0; for (int i=1;i<=100;i++) if (a[i]>m) {x=i-1; break; } ans+=a[x]*num+b[x]; m-=a[x]; if (m==0) return; ans+=num+1; m--; get(m,num+1); return ; } int main() { int T; LL m; init(); scanf("%d",&T); while(T--) { scanf("%I64d",&m); ans=0; get(m,0); printf("%I64d\n",ans); } return 0; }