#include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef int64_t ll; typedef std::pair Pii; typedef std::pair Pll; typedef std::pair Pdd; #define rip(i, n, _s) for (int i = (_s);i < (int)( n ); i++) #define all(_l) _l.begin(), _l.end() #define rall(_l) _l.rbegin(), _l.rend() #define MM << " " << template using MaxHeap = std::priority_queue; template using MinHeap = std::priority_queue, std::greater>; template inline bool chmax(T &_l, const T b) { if (_l < b) { _l = b; return true; } return false; } template inline bool chmin(T &_l, const T b) { if (_l > b) { _l = b; return true; } return false; } # ifdef LOCAL_DEBUG template void vdeb(const std::vector &bb) { for (unsigned int i = 0;i < bb.size();i++) { if (i == bb.size() - 1) std::cout << bb[i]; else std::cout << bb[i] << ' '; } std::cout << '\n'; } template void vdeb(const std::vector> &bb) { for (unsigned int i = 0;i < bb.size();i++) { std::cout << i << ' '; vdeb(bb[i]); } std::cout << '\n'; } # endif using namespace std; ll modpow(ll x, ll k, ll p) { ll ret = 1; while(k) { if(k&1) ret = ret*x%p; x = x*x%p; k >>= 1; } return ret; } ll solve() { ll n; cin >> n; while(n%2 == 0) n /= 2; while(n%5 == 0) n /= 5; if(n == 0) return 1; ll ans = n; auto m = n; rip(i, 100000, 2) { if(n%i == 0) { while(n%i == 0) n /= i; ans /= i; ans *= i-1; } } if(n != 1) ans = ans/n*(n-1); ll ret = ans; rip(i, 100000, 1) { if(ans%i == 0) { if(modpow(10, i, m) == 1) chmin(ret, (ll)i); if(modpow(10, ans/i, m) == 1) chmin(ret, ans/i); } } return ret; } int main() { ios::sync_with_stdio(false); std::cin.tie(nullptr); int t; cin >> t; rip(i,t,0) cout << solve() << endl;; }