#include #include #define int long long #define endl "\n" #define all(n) n.begin(),n.end() #define rall(n) n.rbegin(),n.rend() #define rep(i, s, n) for (int i = s; i < (int)(n); i++) #define floatset(n) fixed<using vec=vector; templateusing min_queue=priority_queue,greater>; using ll = long long; using ld = long double; using pll = pair; using Graph = vector>; struct Edge1{ll to,cost;}; using WGraph = vec>; struct BellEdge{ll from,to,cost;}; using BGraph=vec; constexpr ll INF = 1e18; constexpr ll mod = 1000000007; constexpr ll MOD = 998244353; constexpr int dx[4]={1,0,-1,0}; constexpr int dy[4]={0,1,0,-1}; template bool chmin(T&a,T b){return a>b?a=b,true:false;} template bool chmax(T&a,T b){return a void Fill(A (&array)[N], const T &val){ fill( (T*)array, (T*)(array+N), val ); } int g(int X){ int res=0; for(int i=1;i*i<=X;i++){ if(X%i==0){ if((X/i)==i){ if(1>X>>Y; if(X==Y){ cout<bool{ //A-1が渡されるのでインクリメント A++; if((X-A*a)%(A+1)==0)return true; else return false; }; int ans=0; for(int i=1;i*i<=sa;i++){ if(sa%i==0){ if((X/i)==i){ if(f(i,sa/i))ans++; }else{ if(f(i,sa/i))ans++; if(f(sa/i,i))ans++; } } } cout<>S; while(S--)solve(); }