#include <bits/stdc++.h>
#define ll long long
using namespace std;
int t, n;
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;
}
int _five(int x) {
int low = 1, right = 65, res = -1;
while(low <= right) {
int mid = (low + right) >> 1;
if(mid * mid * mid * mid * mid >= x) {
right = mid - 1;
res = mid;
} else {
low = mid + 1;
}
}
return res;
}
bool _square(int nums) {
int sqr = sqrt(nums);
return sqr * sqr == nums;
}
bool _cubics(int nums) {
int x = _cubic(nums);
return x * x * x == nums;
}
int _fives(int nums) {
int x = _five(nums);
return x * x * 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;
}
}
if(_fives(n)) {
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);
while(t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCB0LCBuOwoKaW50IF9jdWJpYyhpbnQgeCkgewoJaW50IGxvdyA9IDEsIHJpZ2h0ID0gMWUzICsgMTEsIHJlcyA9IC0xOwoJd2hpbGUobG93IDw9IHJpZ2h0KSB7CgkJbGwgbWlkID0gKGxvdyArIHJpZ2h0KSA+PiAxOwoJCWlmKG1pZCAqIG1pZCAqIG1pZCA+PSB4KSB7CgkJCXJpZ2h0ID0gbWlkIC0gMTsKCQkJcmVzID0gbWlkOwoJCX0gZWxzZSB7CgkJCWxvdyA9IG1pZCArIDE7CgkJfQoJfQoJcmV0dXJuIHJlczsKfQoKaW50IF9maXZlKGludCB4KSB7CglpbnQgbG93ID0gMSwgcmlnaHQgPSA2NSwgcmVzID0gLTE7Cgl3aGlsZShsb3cgPD0gcmlnaHQpIHsKCQlpbnQgbWlkID0gKGxvdyArIHJpZ2h0KSA+PiAxOwoJCWlmKG1pZCAqIG1pZCAqIG1pZCAqIG1pZCAqIG1pZCA+PSB4KSB7CgkJCXJpZ2h0ID0gbWlkIC0gMTsKCQkJcmVzID0gbWlkOwoJCX0gZWxzZSB7CgkJCWxvdyA9IG1pZCArIDE7CgkJfQoJfQoJcmV0dXJuIHJlczsKfQoKYm9vbCBfc3F1YXJlKGludCBudW1zKSB7CglpbnQgc3FyID0gc3FydChudW1zKTsKCXJldHVybiBzcXIgKiBzcXIgPT0gbnVtczsKfQoKYm9vbCBfY3ViaWNzKGludCBudW1zKSB7CglpbnQgeCA9IF9jdWJpYyhudW1zKTsKCXJldHVybiB4ICogeCAqIHggPT0gbnVtczsKfQoKaW50IF9maXZlcyhpbnQgbnVtcykgewoJaW50IHggPSBfZml2ZShudW1zKTsKCXJldHVybiB4ICogeCAqIHggKiB4ICogeCA9PSBudW1zOwp9Cgp2b2lkIHNvbHZlKCkgewoJc2NhbmYoIiVkIiwgJm4pOwoJCglpZihfc3F1YXJlKG4pKSB7CgkJcHJpbnRmKCIyXG4iKTsKCQlyZXR1cm47Cgl9IGVsc2UgaWYoX2N1YmljcyhuKSkgewoJCXByaW50ZigiM1xuIik7CgkJcmV0dXJuOwoJfSBlbHNlIHsKCQlmb3IoaW50IGkgPSAxOyBpICogaSA8PSBuOyArK2kpIHsKCQkJaWYoX3NxdWFyZShuIC0gaSAqIGkpKSB7CgkJCQlwcmludGYoIjRcbiIpOwoJCQkJcmV0dXJuOwoJCQl9CgkJfQoJCQoJCWZvcihpbnQgaSA9IDE7IGkgKiBpICogaSA8PSBuOyArK2kpIHsKCQkJaWYoX3NxdWFyZShuIC0gaSAqIGkgKiBpKSkgewoJCQkJcHJpbnRmKCI1XG4iKTsKCQkJCXJldHVybjsKCQkJfQkKCQl9CgkJCgkJaWYoX2ZpdmVzKG4pKSB7CgkJCXByaW50ZigiNVxuIik7CgkJCXJldHVybjsKCQl9CgkJCgkJZm9yKGludCBpID0gMTsgaSAqIGkgKiBpIDw9IG47ICsraSkgewoJCQlpZihfY3ViaWNzKG4gLSBpICogaSAqIGkpKSB7CgkJCQlwcmludGYoIjZcbiIpOwoJCQkJcmV0dXJuOwoJCQl9CgkJfQoJCQoJCWZvcihpbnQgaSA9IDE7IGkgKiBpIDw9IG47ICsraSkgewoJCQlmb3IoaW50IGogPSBpOyBqICogaiA8PSBuIC0gaSAqIGk7ICsraikgewoJCQkJaWYoX3NxdWFyZShuIC0gaSAqIGkgLSBqICogaikpIHsKCQkJCQlwcmludGYoIjZcbiIpOwoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoJCX0KCQkKCQlmb3IoaW50IGkgPSAxOyBpICogaSAqIGkgPD0gbjsgKytpKSB7CgkJCWZvcihpbnQgaiA9IDE7IGogKiBqIDw9IG4gLSBpICogaSAqIGk7ICsraikgewoJCQkJaWYoX3NxdWFyZShuIC0gaSAqIGkgKiBpIC0gaiAqIGopKSB7CgkJCQkJcHJpbnRmKCI3XG4iKTsKCQkJCQlyZXR1cm47CgkJCQl9CgkJCX0KCQl9CgkJCgkJcHJpbnRmKCI4XG4iKTsKCX0KfQoKaW50IG1haW4oKSB7CglzY2FuZigiJWQiLCAmdCk7CgkKCXdoaWxlKHQtLSkgc29sdmUoKTsKCXJldHVybiAwOwp9