#include #include using namespace std; using namespace atcoder; #define all(s) (s).begin(), (s).end() #define rall(s) (s).rbegin(), (s).rend() #define rep(i,l,r) for(int i=l;il;i--) using ll=long long; using mint=modint998244353; //https://atcoder.jp/contests/adt_all_20260924_2/submissions/79473125 vector smallest_prime_factor(int n){ vector res(n+1); iota(res.begin(),res.end(),0); for(int i=2;i*i<=n;i++){ if(res[i]==i){ for(int j=i;j<=n;j+=i){ if(res[j]==j)res[j]=i; } } } return res; } vector spf=smallest_prime_factor(1000001); map prime_factorization(int n){ map factors; int current=n; while(current>1){ factors[spf[current]]++; current/=spf[current]; } return factors; } vector divisors(int n){ auto factors=prime_factorization(n); vector divs={1}; for(auto [p,e] :factors){ int m=divs.size(); int mul=1; for(int k=1;k<=e;k++){ mul*=p; for(int j=0;j>T; while(T--){ ll K;cin>>K; cout<