#include #include #include #include #include #include using namespace std; const long long MOD=998244353; bool calc[30]; long long ff[30]; long long f(long long x) { if (calc[x]) return ff[x]; calc[x]=true; long long ret=0; for (long long a=0;a<=x;a++) for (long long b=0;(b+a)<=x;b++) for (long long c=0;(c+a)<=x;c++) for (long long d=0;max(b,c)+d<=x;d++) { long long ab = x - a - b; long long cd = x - c - d; long long ac = x - a - c; long long bd = x - b - d; if ((ab+cd)>x || (ab+cd)!=(ac+bd)) continue; ret++; ret%=MOD; } //cout<<"f "< p(0); vector lp(1000000+1, 0); for (int x=2;x>t; while (t--) { int n; cin>>n; vector > m(0); while (n>1) { if (m.size()==0 || lp[n]!=m[m.size()-1].first) m.push_back(make_pair(lp[n], 1)); else m[m.size()-1].second++; n/=lp[n]; } long long ans=1; for (auto x : m) { //cout<<"for "<