Pagini recente » Cod sursa (job #1905830) | Cod sursa (job #2548467) | Cod sursa (job #34007) | Cod sursa (job #2733029) | Cod sursa (job #1151620)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
unsigned long long n,m,i,t,j,k,l,o,sdf,nrf,nrprim[80000];
bool a[1000002];
void ciur()
{
long i,j;
for(i=2;i<=1000000;i++)
{
if(a[i]==0)
{
for(j=i+i;j<=1000000;j+=i) a[j]=1;
nrprim[0]++;
nrprim[nrprim[0]]=i;
}
}
}
void desc(int k)
{
unsigned long long i,j,nrp,nrd;
nrf=sdf=1;
for(i=1;i<=nrprim[0]&&k>1;i++)
{
if(k%nrprim[i]==0)
{
nrp=nrprim[i];
nrd=1;
while(k%nrp==0)
{
k=k/nrp;
nrd++;
}
nrf*=nrd;
sdf*=(pow(nrp,nrd)-1);
sdf%=9973;
sdf=(sdf/(nrp-1))%9973;
}
}
if(k>1)
{
nrf*=2;
sdf=(1LL*sdf*(k+1)%9973);
}
g<<nrf<<" "<<sdf<<"\n";
}
int main()
{
f>>t;
ciur();
while(t--)
{
f>>k;
desc(k);
}
return 0;
}