#include using namespace std; #define rep(i, n) for (int i = 0; i < n; i++) #define all(x) (x).begin(),(x).end() const int mod = 1000000007; const long long INF = 1LL << 60; using ll = long long; bool solve(ll mid,ll N){ if(mid*mid<=N) return true; return false; } int main() { ll T; cin >> T; rep(i,T){ ll N; cin >> N; //[OK,NG)で考える ll OK=0; ll NG=1001001001; while(abs(OK-NG)>1){ ll mid=(OK+NG)/2; if(solve(mid,N)){ //midでtrueならOKの下界をmidにまで引き上げる OK=mid; } else{ //midでfalseならNGの上界を(mid-1)に引き下げる NG=mid; } } //OKにtrueの中で最も大きい整数が cout << OK << endl; } }