#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define maxn 30000 #define inf 1500000007 const int mod = 1e9+7; using namespace std; long long dp[maxn],sum[maxn]; int main() { int T,i,j,k; long long n,s; dp[1] = 1; dp[2] = 2; sum[1] = 1; sum[2] = 3; for(i=3;i<=1000;++i){ dp[i] = dp[i-1] + dp[i-2]; sum[i] = sum[i-1] + dp[i]; } scanf("%d",&T); while(T--) { scanf("%I64d",&n); for(i=1;;i++) { if(sum[i] > n) { i--; break; } if(sum[i] == n) break; } printf("%d\n",i); //3 6 10 ...(n*(n+1))/2 7 1 2 3 5 8 13 21 34 } return 0; }