#include <bits/stdc++.h>
#define ll long long
using namespace std;
int t, n;
unordered_set<int> seen;
int _cubic(int x) {
int low = 1, right = 1e3 + 11, res = -1;
while(low <= right) {
ll mid = (low + right) >> 1;
if(mid * mid * mid >= x) {
right = mid - 1;
res = mid;
} else {
low = mid + 1;
}
}
return res;
}
bool _square(int nums) {
return seen.count(nums);
}
bool _cubics(int nums) {
int x = _cubic(nums);
return x * x * x == nums;
}
void solve() {
scanf("%d", &n);
if(_square(n)) {
printf("2\n");
return;
} else if(_cubics(n)) {
printf("3\n");
return;
} else {
for(int i = 1; i * i <= n; ++i) {
if(_square(n - i * i)) {
printf("4\n");
return;
}
}
for(int i = 1; i * i * i <= n; ++i) {
if(_square(n - i * i * i)) {
printf("5\n");
return;
}
}
for(int i = 1; i * i * i <= n; ++i) {
if(_cubics(n - i * i * i)) {
printf("6\n");
return;
}
}
for(int i = 1; i * i <= n; ++i) {
for(int j = i; j * j <= n - i * i; ++j) {
if(_square(n - i * i - j * j)) {
printf("6\n");
return;
}
}
}
for(int i = 1; i * i * i <= n; ++i) {
for(int j = 1; j * j <= n - i * i * i; ++j) {
if(_square(n - i * i * i - j * j)) {
printf("7\n");
return;
}
}
}
printf("8\n");
}
}
int main() {
scanf("%d", &t);
for(int i = 1; i * i <= 1'000'000'000; ++i)
seen.insert(i * i);
while(t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCB0LCBuOwp1bm9yZGVyZWRfc2V0PGludD4gc2VlbjsKCmludCBfY3ViaWMoaW50IHgpIHsKCWludCBsb3cgPSAxLCByaWdodCA9IDFlMyArIDExLCByZXMgPSAtMTsKCXdoaWxlKGxvdyA8PSByaWdodCkgewoJCWxsIG1pZCA9IChsb3cgKyByaWdodCkgPj4gMTsKCQlpZihtaWQgKiBtaWQgKiBtaWQgPj0geCkgewoJCQlyaWdodCA9IG1pZCAtIDE7CgkJCXJlcyA9IG1pZDsKCQl9IGVsc2UgewoJCQlsb3cgPSBtaWQgKyAxOwoJCX0KCX0KCXJldHVybiByZXM7Cn0KCmJvb2wgX3NxdWFyZShpbnQgbnVtcykgewoJcmV0dXJuIHNlZW4uY291bnQobnVtcyk7Cn0KCmJvb2wgX2N1YmljcyhpbnQgbnVtcykgewoJaW50IHggPSBfY3ViaWMobnVtcyk7CglyZXR1cm4geCAqIHggKiB4ID09IG51bXM7Cn0KCnZvaWQgc29sdmUoKSB7CglzY2FuZigiJWQiLCAmbik7CgkKCWlmKF9zcXVhcmUobikpIHsKCQlwcmludGYoIjJcbiIpOwoJCXJldHVybjsKCX0gZWxzZSBpZihfY3ViaWNzKG4pKSB7CgkJcHJpbnRmKCIzXG4iKTsKCQlyZXR1cm47Cgl9IGVsc2UgewoJCWZvcihpbnQgaSA9IDE7IGkgKiBpIDw9IG47ICsraSkgewoJCQlpZihfc3F1YXJlKG4gLSBpICogaSkpIHsKCQkJCXByaW50ZigiNFxuIik7CgkJCQlyZXR1cm47CgkJCX0KCQl9CgkJCgkJZm9yKGludCBpID0gMTsgaSAqIGkgKiBpIDw9IG47ICsraSkgewoJCQlpZihfc3F1YXJlKG4gLSBpICogaSAqIGkpKSB7CgkJCQlwcmludGYoIjVcbiIpOwoJCQkJcmV0dXJuOwoJCQl9CQoJCX0KCQkKCQlmb3IoaW50IGkgPSAxOyBpICogaSAqIGkgPD0gbjsgKytpKSB7CgkJCWlmKF9jdWJpY3MobiAtIGkgKiBpICogaSkpIHsKCQkJCXByaW50ZigiNlxuIik7CgkJCQlyZXR1cm47CgkJCX0KCQl9CgkJCgkJZm9yKGludCBpID0gMTsgaSAqIGkgPD0gbjsgKytpKSB7CgkJCWZvcihpbnQgaiA9IGk7IGogKiBqIDw9IG4gLSBpICogaTsgKytqKSB7CgkJCQlpZihfc3F1YXJlKG4gLSBpICogaSAtIGogKiBqKSkgewoJCQkJCXByaW50ZigiNlxuIik7CgkJCQkJcmV0dXJuOwoJCQkJfQoJCQl9CgkJfQoJCQoJCWZvcihpbnQgaSA9IDE7IGkgKiBpICogaSA8PSBuOyArK2kpIHsKCQkJZm9yKGludCBqID0gMTsgaiAqIGogPD0gbiAtIGkgKiBpICogaTsgKytqKSB7CgkJCQlpZihfc3F1YXJlKG4gLSBpICogaSAqIGkgLSBqICogaikpIHsKCQkJCQlwcmludGYoIjdcbiIpOwoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoJCX0KCQkKCQlwcmludGYoIjhcbiIpOwoJfQp9CgppbnQgbWFpbigpIHsKCXNjYW5mKCIlZCIsICZ0KTsKCQoJZm9yKGludCBpID0gMTsgaSAqIGkgPD0gMScwMDAnMDAwJzAwMDsgKytpKQoJCXNlZW4uaW5zZXJ0KGkgKiBpKTsKCQoJd2hpbGUodC0tKSBzb2x2ZSgpOwoJcmV0dXJuIDA7Cn0=