Pagini recente » Istoria paginii utilizator/dienutza2294 | Cod sursa (job #169038) | Cod sursa (job #21196) | Cod sursa (job #2076001) | Cod sursa (job #1453154)
#include<fstream>
#include<algorithm>
using namespace std;
const int MOD=9973;
int i,j,t,b[100005],n,sum,nr,m,d;
bool a[1000005];
int Pow(int a,int b) {
int aux=1;
while(b)
if(b&1) aux*=a,aux%=MOD,--b;
else a*=a,a%=MOD,b/=2;
return aux;
}
int main()
{
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
for(i=2;i<=1000000;++i)
if(!a[i]) for(j=i+i,b[++m]=i;j<=1000000;j+=i) a[j]=1;
for(cin>>t;t;--t)
{
cin>>n; nr=sum=1;
for(j=1;b[j]*b[j]<=n && j<=m && n>1;++j,d=0)
if(!(n%b[j]))
{
while(!(n%b[j]) && n>1) ++d,n/=b[j];
nr*=d+1; nr%=MOD;
sum*=(Pow(b[j],d+1)-1+MOD)%MOD; sum%=MOD;
sum*=Pow(b[j]-1,MOD-2); sum%=MOD;
}
if(n>1) nr*=2,nr%=MOD,sum*=n+1,sum%=MOD;
cout<<nr<<' '<<sum<<'\n';
}
return 0;
}