Pagini recente » Cod sursa (job #1375068) | Cod sursa (job #1457972) | Cod sursa (job #1141624) | Cod sursa (job #2890405) | Cod sursa (job #2388944)
#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, n, cnt;
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 aux=sqrt(n), e=0;
for(int d=0; p[d]<=aux; d++,e=0)
{
int x=n;
while(!(x%p[d]))
x/=p[d],e++;
s1*=(e+1);
s2=(1LL*s2*(putere(p[d],e+1)-1)*(putere(p[d]-1,M-2)%M))%M;
}
outf<<s1<<' '<<s2<<'\n';
}
return 0;
}