Pagini recente » Cod sursa (job #2282069) | Cod sursa (job #181826) | Cod sursa (job #1287853) | Cod sursa (job #576840) | Cod sursa (job #1151650)
#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,sdf1,sdf2,sdff,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(long long k)
{
unsigned long long i,j,nrp,nrd;
nrf=sdf1=sdf2=sdff=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;
sdf1=(pow(nrp,nrd)-1);
sdf1%=9973;
sdf2=(nrp-1)%9973;
sdff=(((sdff*sdf1)%9973)/sdf2)%9973;
}
}
if(k>1)
{
nrf*=2;
sdff=(1LL*sdff*(k+1)%9973);
}
g<<nrf<<" "<<sdff<<"\n";
}
int main()
{
f>>t;
ciur();
while(t--)
{
f>>k;
desc(k);
}
return 0;
}