Pagini recente » Cod sursa (job #1033049) | Cod sursa (job #3150604) | Cod sursa (job #1185024) | Cod sursa (job #1869964) | Cod sursa (job #3297968)
#include <bits/stdc++.h>
#define pb push_back
#define int long long
using namespace std;
const int LIM=1e6+5;int VALMAX=1e6+5,mod=9973;
bool ciur[LIM];
vector<int> primes;
int binpow(int n, int e)
{
int ans=1;
while(e)
{
if(e&1) ans=ans*n%mod;
n=n*n%mod;
e>>=1;
}
return ans;
}
int inv(int x) {return binpow(x,mod-2);}
void solve()
{
int n;
cin>>n;
int cnt=1,ss=1;
for(auto p:primes)
{
if(n%p!=0) continue;
int e=0,pp=1;
while(n%p==0) ++e,n/=p,pp*=p;
cnt*=(e+1);
pp*=p;
ss=ss*(pp-1)%mod;
ss=ss*inv(p-1)%mod;
}
cout<<cnt<<" "<<ss;
}
signed main()
{
ifstream cin("ssnd.in");ofstream cout("ssnd.out");
for(int i=2;i<=VALMAX;++i)
{
if(ciur[i]) continue;
primes.pb(i);
for(int j=i*2;j<=VALMAX;j+=i) ciur[j]=1;
}
int t=1;cin>>t;
while(t--) {solve();cout<<'\n';}
}