Pagini recente » Cod sursa (job #2589414) | Cod sursa (job #2521632) | Cod sursa (job #100195) | Cod sursa (job #949557) | Cod sursa (job #2388980)
#include <bits/stdc++.h>
using namespace std;
ifstream inf("ssnd.in");
ofstream outf("ssnd.out");
const int M=9973;
bool c[1000010];
vector<int> p;
long long s1;
int s2;
int t, cnt;
long long n;
int putere(int b, int e)
{
if(e==0)
return 1;
int ret=putere(b,e/2);
ret=(1LL*ret*ret)%M;
if(e&1)
ret=(ret*b)%M;
return ret;
}
int main()
{
for(int i=2; i<=1e6; i++)
{
if(!c[i])
{
p.push_back(i);
for(int j=i*2; j<=1e6; j+=i)
c[j]=1;
}
}
inf>>t;
for(;t;t--)
{
s1=1;
s2=1;
inf>>n;
/*if(!c[n])
{
outf<<2<<' '<<n+1<<'\n';
continue;
}*/
int e=0;
for(int d=0; d<1e6&&p[d]*p[d]<=n; d++,e=0)
{
while(!(n%p[d]))
n/=p[d],e++;
s1*=(e+1);
s2=(1LL*s2*(putere(p[d],e+1)-1)*(putere(p[d]-1,M-2)%M))%M;
}
if(n>1)
{
s1=(s1*2)%M;
s2=(1LL*s2*(putere(n,2)-1)*(putere(n-1, M-2)%M))%M;
}
outf<<s1<<' '<<s2<<'\n';
}
return 0;
}