Pagini recente » Cod sursa (job #2238958) | Cod sursa (job #1244886) | Cod sursa (job #294688) | Cod sursa (job #2869182) | Cod sursa (job #2713830)
#include <fstream>
#define mod 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int n,nr,ciur[1000001],prim[1000001];
long long x,sol;
long long putere(int a,int b)
{
long long c=1;
while(b)
{
if(b%2)
{
c=c*a%mod;
}
a=1ll*a*a%mod;
b/=2;
}
return c;
}
void descompune(int x)
{
for(int i=1;1ll*prim[i]*prim[i]<=x;i++)
{
if(x%prim[i]==0)
{
int d=prim[i];
int p=0;
while(x%d==0)
{
p++;
x/=d;
}
nr*=(p+1);
sol=sol*((putere(prim[i],p+1)-1)*putere(prim[i]-1,mod-2)%mod)%mod;
}
}
if(x!=1)
{nr*=2;
sol=sol*(x+1)%mod;}
}
int main()
{
ciur[0]=1;
ciur[1]=1;
int k=0;
for(int i=2;i<=1000000;i++)
{
if(ciur[i]==0)
{
prim[++k]=i;
for(int j=2*i;j<=1000000;j+=i)
ciur[j]=1;
}
}
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>x;
nr=1;
sol=1;
descompune(x);
fout<<nr<<" "<<sol<<"\n";
}
return 0;
}