#include <algorithm>
#include <cstdint>
#include <iostream>
#include <limits>
#include <vector>
int main() {
// Calculate fibonacci numbers.
std::vector<std::int64_t> fib_nums;
std::int64_t a = 0;
std::int64_t b = 1;
fib_nums.push_back(a);
fib_nums.push_back(b);
for (;;) {
if (a > std::numeric_limits<std::int64_t>::max() - b) {
break;
}
std::int64_t c = a + b;
fib_nums.push_back(c);
a = b;
b = c;
}
// Num test cases.
std::size_t p;
std::cin >> p;
while (p--) {
std::int64_t k;
std::cin >> k;
std::size_t n = 0;
while (k > 0) {
auto lower_bound = std::lower_bound(fib_nums.begin(), fib_nums.end(), k);
// a < k <= b
std::int64_t a = *(lower_bound - 1);
std::int64_t b = *lower_bound;
// greedy
k = std::min(k - a, b - k);
++n;
}
std::cout << n << '\n';
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPHZlY3Rvcj4KCmludCBtYWluKCkgewogIC8vIENhbGN1bGF0ZSBmaWJvbmFjY2kgbnVtYmVycy4KICBzdGQ6OnZlY3RvcjxzdGQ6OmludDY0X3Q+IGZpYl9udW1zOwogIHN0ZDo6aW50NjRfdCBhID0gMDsKICBzdGQ6OmludDY0X3QgYiA9IDE7CiAgZmliX251bXMucHVzaF9iYWNrKGEpOwogIGZpYl9udW1zLnB1c2hfYmFjayhiKTsKICBmb3IgKDs7KSB7CiAgICBpZiAoYSA+IHN0ZDo6bnVtZXJpY19saW1pdHM8c3RkOjppbnQ2NF90Pjo6bWF4KCkgLSBiKSB7CiAgICAgIGJyZWFrOwogICAgfQogICAgc3RkOjppbnQ2NF90IGMgPSBhICsgYjsKICAgIGZpYl9udW1zLnB1c2hfYmFjayhjKTsKICAgIGEgPSBiOwogICAgYiA9IGM7CiAgfQoKICAvLyBOdW0gdGVzdCBjYXNlcy4KICBzdGQ6OnNpemVfdCBwOwogIHN0ZDo6Y2luID4+IHA7CgogIHdoaWxlIChwLS0pIHsKICAgIHN0ZDo6aW50NjRfdCBrOwogICAgc3RkOjpjaW4gPj4gazsKCiAgICBzdGQ6OnNpemVfdCBuID0gMDsKICAgIHdoaWxlIChrID4gMCkgewogICAgICBhdXRvIGxvd2VyX2JvdW5kID0gc3RkOjpsb3dlcl9ib3VuZChmaWJfbnVtcy5iZWdpbigpLCBmaWJfbnVtcy5lbmQoKSwgayk7CiAgICAgIC8vIGEgPCBrIDw9IGIKICAgICAgc3RkOjppbnQ2NF90IGEgPSAqKGxvd2VyX2JvdW5kIC0gMSk7CiAgICAgIHN0ZDo6aW50NjRfdCBiID0gKmxvd2VyX2JvdW5kOwogICAgICAvLyBncmVlZHkKICAgICAgayA9IHN0ZDo6bWluKGsgLSBhLCBiIC0gayk7CiAgICAgICsrbjsKICAgIH0KICAKICAgIHN0ZDo6Y291dCA8PCBuIDw8ICdcbic7CiAgfQoKICByZXR1cm4gMDsKfQo=